Мы знаем, что Android Gradle Plugin 3.0 изменяет Api https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration,, нам нужно изменить имя apk следующим кодом в build.gradle
:
// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
Наша команда написала плагин gradleв Java, потому что автозаполнение и умные подсказки, но у меня есть проблема, когда я обновил плагин Gradle для Android Gradle плагин до 3.1.2, и я не знаю, как перевести приведенный выше код в Java, я попробовал следующий метод:
extension.getApplicationVariants().all(variant ->
variant.getOutputs().all(output -> {
String fileName = createOutputFilename(variant.getBuildType().getVersionNameSuffix());
out.println("> setting output filename to " + fileName);
File outputFile = output.getOutputFile();
String outputFilePath = outputFile.getPath();
outputFilePath = outputFilePath.substring(0, outputFilePath.lastIndexOf("/"));
outputFilePath += "/" + fileName;
out.println("> new outputFilePath - " + outputFilePath);
outputFile.renameTo(new File(outputFilePath));
})
);
Но, похоже, это не работает.Кто-нибудь знает как это решить?