'manifestOutputDirectory' с плагином gradle 3.3.0 не возвращает результат - PullRequest
0 голосов
/ 09 апреля 2019

Попытка получить выходной каталог манифеста, с кодом ниже в приложении build.gradle

def manifestOutDir = manifestOutputDirectory

Но вместо того, чтобы возвращать путь к каталогу, когда я запускаю build и распечатываю его, он показывает эту строку

property(interface org.gradle.api.file.Directory, transform(property(interface org.gradle.api.file.Directory,
...

Я использую gradle-plugin-3.3.0 с Android Studio 3.3

Не работает с gradle-android-plugin-3.3.0 или удален? Что-то еще, что мне не хватает?

Ответы [ 2 ]

2 голосов
/ 10 апреля 2019

Этот пост [https://stackoverflow.com/a/46037817/4181904] указывает на то, что эта функция не работает.

По сути, вместо доступа к выходному файлу напрямую из 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
        }
    }
}
0 голосов
/ 28 июня 2019

В старшей версии, возможно, выше 3.3, библиотека AndroidManifest.xml перемещена из пакета .../merged_manifests в .../library_manifest. Так что если вы используете этот код, чтобы получить путь не будет работать. Более подробно вы можете увидеть Плагин Android для Gradle 3.0.0

 def manifestPath = manifestOutputDirectory.asFile.get()

СЕЙЧАС, Вы должны просто использовать это, чтобы получить AndroidManifest.xml:

 def manifest = manifestOutputFile.asFile.get()

Веселись 101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...