尝试获取清单输出目录,并在应用程序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或已删除?我还有什么想念的吗?
答案 0 :(得分:2)
此帖子[https://stackoverflow.com/a/46037817/4181904]表示此功能已损坏。
本质上,建议不要访问gradle API的直接输出文件,而是访问包含该文件的目录。下面的代码段通过清单文件对此进行了演示,但也可以应用于其他outputFiles。
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
}
}
}
答案 1 :(得分:0)
在可能高于3.3的高阶版本中,库的AndroidManifest.xml
从包.../merged_manifests
移到.../library_manifest
。因此,如果您使用此代码来获取路径将无法正常工作。您可以查看Android Plugin for Gradle 3.0.0
def manifestPath = manifestOutputDirectory.asFile.get()
现在,您应该使用它来获取AndroidManifest.xml
:
def manifest = manifestOutputFile.asFile.get()
玩得开心?