Skip to content

Commit

Permalink
fix manifest merge bug in 3.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kezong committed Sep 11, 2019
1 parent 9645562 commit ca09a07
Showing 1 changed file with 42 additions and 38 deletions.
80 changes: 42 additions & 38 deletions source/src/main/java/com/kezong/fataar/LibraryManifestMerger.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,45 +36,9 @@ public void setGradleVersion(String gradleVersion) {
mGradleVersion = gradleVersion;
}

@TaskAction
protected void doFullTaskAction() throws ManifestMerger2.MergeFailureException, IOException {
protected void doTaskAction() {
try {
ILogger iLogger = new LoggerWrapper(getLogger());
ManifestMerger2.Invoker<?> mergerInvoker = ManifestMerger2.
newMerger(getMainManifestFile(), iLogger, ManifestMerger2.MergeType.LIBRARY);
List<File> secondaryManifestFiles = getSecondaryManifestFiles();
List<ManifestProvider> manifestProviders = new ArrayList<>();
if (secondaryManifestFiles != null) {
for (final File file : secondaryManifestFiles) {
manifestProviders.add(new ManifestProvider() {
@Override
public File getManifest() {
return file.getAbsoluteFile();
}

@Override
public String getName() {
return file.getName();
}
});
}
}
mergerInvoker.addManifestProviders(manifestProviders);
MergingReport mergingReport = mergerInvoker.merge();
if (mergingReport.getResult().isError()) {
getLogger().error(mergingReport.getReportString());
mergingReport.log(iLogger);
throw new BuildException(mergingReport.getReportString());
}

// fix utf-8 problem in windows
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(getOutputFile()), "UTF-8")
);
writer.append(mergingReport
.getMergedDocument(MergingReport.MergedManifestKind.MERGED));
writer.flush();
writer.close();
doFullTaskAction();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Gradle Plugin Version:" + mGradlePluginVersion);
Expand All @@ -83,4 +47,44 @@ public String getName() {
"https://github.com/kezong/fat-aar-android/issues with Gradle version. Thank you.");
}
}

@TaskAction
protected void doFullTaskAction() throws ManifestMerger2.MergeFailureException, IOException {
ILogger iLogger = new LoggerWrapper(getLogger());
ManifestMerger2.Invoker<?> mergerInvoker = ManifestMerger2.
newMerger(getMainManifestFile(), iLogger, ManifestMerger2.MergeType.LIBRARY);
List<File> secondaryManifestFiles = getSecondaryManifestFiles();
List<ManifestProvider> manifestProviders = new ArrayList<>();
if (secondaryManifestFiles != null) {
for (final File file : secondaryManifestFiles) {
manifestProviders.add(new ManifestProvider() {
@Override
public File getManifest() {
return file.getAbsoluteFile();
}

@Override
public String getName() {
return file.getName();
}
});
}
}
mergerInvoker.addManifestProviders(manifestProviders);
MergingReport mergingReport = mergerInvoker.merge();
if (mergingReport.getResult().isError()) {
getLogger().error(mergingReport.getReportString());
mergingReport.log(iLogger);
throw new BuildException(mergingReport.getReportString());
}

// fix utf-8 problem in windows
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(getOutputFile()), "UTF-8")
);
writer.append(mergingReport
.getMergedDocument(MergingReport.MergedManifestKind.MERGED));
writer.flush();
writer.close();
}
}

0 comments on commit ca09a07

Please sign in to comment.