invoker.withFeatures( while (stringTokenizer.hasMoreElements()) { File library = checkPath(stringTokenizer.nextToken()); invoker.addLibraryManifest(library); while (stringTokenizer.hasMoreElements()) { File library = checkPath(stringTokenizer.nextToken()); invoker.addFlavorAndBuildTypeManifest(library); ManifestSystemProperty.valueOf( value.substring(0, value.indexOf('=')).toUpperCase(Locale.ENGLISH)); invoker.setOverride(manifestSystemProperty, value.substring(value.indexOf('=') + 1)); } catch (IllegalArgumentException e) { logger.error( return 1; invoker.setPlaceHolderValue( value.substring(0, value.indexOf('=')), value.substring(value.indexOf('=') + 1)); invoker.withFeatures(ManifestMerger2.Invoker.Feature.DEBUGGABLE); MergingReport merge = invoker.merge(); if (merge.getResult().isSuccess()) { String mergedDocument = merge.getMergedDocument(MergingReport.MergedManifestKind.MERGED);
Invoker invoker = ManifestMerger2.newMerger( testManifestFile, mLogger, ManifestMerger2.MergeType.APPLICATION) .setPlaceHolderValues(manifestPlaceholders) .setPlaceHolderValue(PlaceholderHandler.INSTRUMENTATION_RUNNER, instrumentationRunner) .addLibraryManifest(generatedTestManifest); invoker.setOverride(ManifestSystemProperty.PACKAGE, testApplicationId); invoker.setOverride(ManifestSystemProperty.MIN_SDK_VERSION, minSdkVersion); invoker.setOverride(ManifestSystemProperty.NAME, instrumentationRunner); invoker.setOverride(ManifestSystemProperty.TARGET_PACKAGE, testedApplicationId); invoker.setOverride(ManifestSystemProperty.FUNCTIONAL_TEST, functionalTest.toString()); invoker.setOverride(ManifestSystemProperty.HANDLE_PROFILING, handleProfiling.toString()); if (testLabel != null) { invoker.setOverride(ManifestSystemProperty.LABEL, testLabel); invoker.setOverride(ManifestSystemProperty.TARGET_SDK_VERSION, targetSdkVersion); MergingReport mergingReport = invoker.merge(); if (manifestProviders.isEmpty()) { handleMergingResult(mergingReport, outManifest); MergingReport mergingReport = ManifestMerger2.newMerger( generatedTestManifest, mLogger, ManifestMerger2.MergeType.APPLICATION) .withFeatures(Invoker.Feature.REMOVE_TOOLS_DECLARATIONS) .setOverride(ManifestSystemProperty.PACKAGE, testApplicationId) .addManifestProviders(manifestProviders) .setPlaceHolderValues(manifestPlaceholders) .merge();
while (stringTokenizer.hasMoreElements()) { File library = checkPath(stringTokenizer.nextToken()); invoker.addLibraryManifest(library); while (stringTokenizer.hasMoreElements()) { File library = checkPath(stringTokenizer.nextToken()); invoker.addFlavorAndBuildTypeManifest(library); .valueOf(value.substring(0, value.indexOf('=')) .toUpperCase(Locale.ENGLISH)); invoker.setOverride(manifestSystemProperty, value.substring(value.indexOf('=') + 1)); } catch (IllegalArgumentException e) { logger.error(e, "Invalid property name "+ value.substring(0, value.indexOf('=')) return 1; invoker.setPlaceHolderValue(value.substring(0, value.indexOf('=')), value.substring(value.indexOf('=') + 1)); MergingReport merge = invoker.merge(); if (merge.getResult().isSuccess()) { String mergedDocument = merge.getMergedDocument(MergingReport.MergedManifestKind.MERGED);
Invoker invoker = ManifestMerger2.newMerger( testManifestFile, mLogger, ManifestMerger2.MergeType.APPLICATION) .setOverride(SystemProperty.PACKAGE, testApplicationId) .setPlaceHolderValues(manifestPlaceholders) .setPlaceHolderValue(PlaceholderHandler.INSTRUMENTATION_RUNNER, instrumentationRunner) .addLibraryManifests(generatedTestManifest); if (minSdkVersion != null) { invoker.setOverride(SystemProperty.MIN_SDK_VERSION, minSdkVersion); invoker.setOverride(SystemProperty.TARGET_SDK_VERSION, targetSdkVersion); MergingReport mergingReport = invoker.merge(); if (libraries.isEmpty()) { handleMergingResult(mergingReport, outManifest); MergingReport mergingReport = ManifestMerger2.newMerger( generatedTestManifest, mLogger, ManifestMerger2.MergeType.APPLICATION) .withFeatures(Invoker.Feature.REMOVE_TOOLS_DECLARATIONS) .setOverride(SystemProperty.PACKAGE, testApplicationId) .addLibraryManifests(collectLibraries(libraries)) .setPlaceHolderValues(manifestPlaceholders) .merge();
.setPlaceHolderValues(placeHolders) .addFlavorAndBuildTypeManifests( manifestOverlays.toArray(new File[manifestOverlays.size()])) .addManifestProviders(dependencies) .withFeatures(optionalFeatures.toArray( new Invoker.Feature[optionalFeatures.size()])) .setMergeReportFile(reportFile); manifestMergerInvoker.withFeatures(Invoker.Feature.REMOVE_TOOLS_DECLARATIONS); manifestMergerInvoker.withFeatures(Invoker.Feature.MAKE_AAPT_SAFE); minSdkVersion, targetSdkVersion, maxSdkVersion); MergingReport mergingReport = manifestMergerInvoker.merge(); mLogger.verbose("Merging result: %1$s", mergingReport.getResult()); switch (mergingReport.getResult()) {
Invoker manifestMergerInvoker = ManifestMerger2.newMerger(mainManifest, mLogger, mergeType) .setPlaceHolderValues(placeHolders) .addFlavorAndBuildTypeManifests( manifestOverlays.toArray(new File[manifestOverlays.size()])) .addLibraryManifests(collectLibraries(libraries)) .setMergeReportFile(reportFile); manifestMergerInvoker.withFeatures(Invoker.Feature.REMOVE_TOOLS_DECLARATIONS); minSdkVersion, targetSdkVersion, maxSdkVersion); MergingReport mergingReport = manifestMergerInvoker.merge(); mLogger.info("Merging result:" + mergingReport.getResult()); switch (mergingReport.getResult()) {
invoker.setOverride(ManifestSystemProperty.PACKAGE, packageOverride); invoker.setOverride(ManifestSystemProperty.VERSION_CODE, String.valueOf(versionCode)); invoker.setOverride(ManifestSystemProperty.VERSION_NAME, versionName); invoker.setOverride(ManifestSystemProperty.MIN_SDK_VERSION, minSdkVersion); invoker.setOverride(ManifestSystemProperty.TARGET_SDK_VERSION, targetSdkVersion); invoker.setOverride(ManifestSystemProperty.MAX_SDK_VERSION, maxSdkVersion.toString());
invoker.setOverride(SystemProperty.PACKAGE, packageOverride); invoker.setOverride(SystemProperty.VERSION_CODE, String.valueOf(versionCode)); invoker.setOverride(SystemProperty.VERSION_NAME, versionName); invoker.setOverride(SystemProperty.MIN_SDK_VERSION, minSdkVersion); invoker.setOverride(SystemProperty.TARGET_SDK_VERSION, targetSdkVersion); invoker.setOverride(SystemProperty.MAX_SDK_VERSION, maxSdkVersion.toString());
@TaskAction protected void doFullTaskAction() throws ManifestMerger2.MergeFailureException, IOException { ILogger iLogger = new LoggerWrapper(getLogger()); ManifestMerger2.Invoker mergerInvoker = ManifestMerger2. newMerger(getMainManifestFile(), iLogger, ManifestMerger2.MergeType.APPLICATION); List<File> secondaryManifestFiles = getSecondaryManifestFiles(); mergerInvoker.addLibraryManifests(secondaryManifestFiles.toArray(new File[secondaryManifestFiles.size()])); MergingReport mergingReport = mergerInvoker.merge(); if (mergingReport.getResult().isError()) { getLogger().error(mergingReport.getReportString()); mergingReport.log(iLogger); throw new BuildException(mergingReport.getReportString()); } try (FileWriter fileWriter = new FileWriter(getOutputFile())) { fileWriter.append(mergingReport .getMergedDocument(MergingReport.MergedManifestKind.MERGED)); } }
/** * Add several library file manifests at then end of the list which will make them the * lowest priority manifest files. The relative priority between all the files passed as * parameters will be respected. * @param files library manifest files to add last. * @return itself. */ @NonNull public Invoker addLibraryManifests(@NonNull File... files) { for (File file : files) { addLibraryManifest(file); } return thisAsT(); }
/** * Add one library file manifest, will be added last in the list of library files which will * make the parameter the lowest priority library manifest file. * @param file the library manifest file to add. * @return itself. */ @NonNull public Invoker addLibraryManifest(@NonNull File file) { addLibraryManifest(file.getName(), file); return thisAsT(); }