Skip to content

Commit 51da72b

Browse files
committed
invoke gradle clean on android projects after removing a native plugin
1 parent 07f204a commit 51da72b

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

lib/services/android-project-service.ts

+18-7
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,11 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
367367

368368
public removePluginNativeCode(pluginData: IPluginData): void {
369369
try {
370-
this.$fs.deleteDirectory(path.join(this.platformData.projectRoot, "configurations", pluginData.name));
371-
this.$fs.deleteDirectory(path.join(this.platformData.projectRoot, "src", pluginData.name));
370+
// check whether the dependency that's being removed has native code
371+
let pluginConfigDir = path.join(this.platformData.projectRoot, "configurations", pluginData.name);
372+
if (this.$fs.exists(pluginConfigDir)) {
373+
this.cleanProject(this.platformData.projectRoot, []).wait();
374+
}
372375
} catch (e) {
373376
if (e.code === "ENOENT") {
374377
this.$logger.debug("No native code jars found: " + e.message);
@@ -396,16 +399,24 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
396399

397400
let buildOptions = this.getBuildOptions();
398401

399-
buildOptions.unshift("clean");
400-
401402
let projectRoot = this.platformData.projectRoot;
403+
404+
this.cleanProject(projectRoot, buildOptions).wait();
405+
}
406+
return Future.fromResult();
407+
}
408+
409+
private cleanProject(projectRoot: string, options: string[]): IFuture<void> {
410+
return (() => {
411+
options.unshift("clean");
412+
402413
let gradleBin = this.useGradleWrapper(projectRoot) ? path.join(projectRoot, "gradlew") : "gradle";
403414
if (this.$hostInfo.isWindows) {
404415
gradleBin += ".bat";
405416
}
406-
this.spawn(gradleBin, buildOptions, { stdio: "inherit", cwd: this.platformData.projectRoot }).wait();
407-
}
408-
return Future.fromResult();
417+
418+
this.spawn(gradleBin, options, { stdio: "inherit", cwd: this.platformData.projectRoot }).wait();
419+
}).future<void>()();
409420
}
410421

411422
public deploy(deviceIdentifier: string): IFuture<void> {

0 commit comments

Comments
 (0)