@Override public File get() { return getOutputFile(); }
@Nullable @Override public File getOutputFile() { if (zipAlignTask != null) { return zipAlignTask.getOutputFile(); } return packageApplicationTask == null ? null : packageApplicationTask.getOutputFile(); }
@Override public File call() throws Exception { // wire to the output of the package task. PackageApplication packageApplicationTask = ((ApkVariantOutputData) scope .getVariantOutputData()).packageApplicationTask; return packageApplicationTask == null ? scope.getPackageApk() : packageApplicationTask.getOutputFile(); } });
private void recordMetrics() { long metricsStartTime = System.nanoTime(); GradleBuildProjectMetrics.Builder metrics = GradleBuildProjectMetrics.newBuilder(); Long apkSize = getSize(getOutputFile()); if (apkSize != null) { metrics.setApkSize(apkSize); } Long resourcesApSize = getSize(getResourceFile()); if (resourcesApSize != null) { metrics.setResourcesApSize(resourcesApSize); } metrics.setMetricsTimeNs(System.nanoTime() - metricsStartTime); ProcessProfileWriter.getProject(getProject().getPath()).setMetrics(metrics); }
@Override protected void doFullTaskAction() { try { final File dir = getJavaResourceDir(); getBuilder().packageApk(getResourceFile().getAbsolutePath(), getDexFolder(), getDexedLibraries(), getPackagedJars(), (dir == null ? null : dir.getAbsolutePath()), getJniFolders(), getMergingFolder(), getAbiFilters(), getJniDebugBuild(), getSigningConfig(), getPackagingOptions(), getOutputFile().getAbsolutePath()); } catch (DuplicateFileException e) { Logger logger = getLogger(); logger.error("Error: duplicate files during packaging of APK " + getOutputFile() .getAbsolutePath()); logger.error("\tPath in archive: " + e.getArchivePath()); logger.error("\tOrigin 1: " + e.getFile1()); logger.error("\tOrigin 2: " + e.getFile2()); logger.error("You can ignore those files in your build.gradle:"); logger.error("\tandroid {"); logger.error("\t packagingOptions {"); logger.error("\t exclude \'" + e.getArchivePath() + "\'"); logger.error("\t }"); logger.error("\t}"); throw new BuildException(e.getMessage(), e); } catch (Exception e) { throw new BuildException(e.getMessage(), e); } }