Как можно управлять вариантами вывода с помощью Android Gradle Plugin 3.0.0+?
Последняя версия (3.0.0) Android Plugin для Gradle нарушила свой API для управления Варианты вывода. Этот API использовался для управления файлами, создаваемыми во время сборки (например, AndroidManifest.xml), и был удален для улучшения времени настройки.
Какие новые API-интерфейсы доступны для работы с выводами Variant и как они отличаются от API 2.X?
Ответы
Ответ 1
Изменения в outputFiles теперь задокументированы на сайте разработчика Android.
По существу, вместо доступа к outputFile непосредственно из API gradle рекомендуется обратиться к каталогу, содержащему файл. Нижеприведенный фрагмент демонстрирует это с помощью файла манифеста, но может быть применен и к другим выходным файлам.
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
output.processManifest.doLast {
String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
def manifestContent = file(manifestPath).getText()
// Manipulate the file as needed
}
}
}
Ответ 2
Похоже, они снова изменили этот интерфейс. (плагин для Android Gradle 3. 3+ или Gradle 5. 4+)
Я использую следующее для получения manifestPath:
def manifestPath = "${manifestOutputDirectory.get().asFile}/AndroidManifest.xml"
Понял это отсюда
java.io.FileNotFoundException
со следующим в пути
property(interface org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, /Users/me/app/build/intermediates/merged_manifests/debug))