android-studio - 无法使用 gradle 插件 3.3 覆盖清单
问题描述
这基本上是我在这个问题上写的文字的副本
任何帮助,将不胜感激:
我正在尝试将我的项目升级到带有 gradle 4.10.1 的 gradle plugin 3.3 并且我的构建失败并出现以下错误
- 出了什么问题:任务':main:processDebugManifest'执行失败。
java.io.FileNotFoundException: /main/property(interface org.gradle.api.file.Directory, transform(property(interface org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file. DefaultProjectLayout$FixedDirectory, /main/build))))/AndroidManifest.xml (没有这样的文件或目录)
我的代码与此处的代码相同- “manifestOutputFile 不再可用”下的https://developer.android.com/studio/known-issues#variant_api
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
output.processManifest.doLast {
// Stores the path to the maifest.
String manifestPath = "$manifestOutputDirectory/AndroidManifest.xml"
// Stores the contents of the manifest.
def manifestContent = file(manifestPath).getText()
...
}
}
}
这是产生错误的行 -
def manifestContent = file(manifestPath).getText()
更新:尝试了此答案 下方评论中建议的解决方案并收到以下错误
- 出了什么问题:任务':main:processDebugManifest'执行失败。找不到匹配的构造函数:java.io.File(org.gradle.api.internal.file.DefaultProjectLayout$DefaultDirectoryVar, java.lang.String)
解决方案
def outputDir = manifestOutputDirectory
File directory
if (outputDir instanceof File) {
directory = outputDir
} else {
directory = outputDir.get().asFile
}
String manifestPath = directory.toString() + "/AndroidManifest.xml"
推荐阅读
- c# - 不能使用服务容器中的服务和默认值来实例化“MyProject.Response”类型的构造函数
- node.js - 当不能保证所有参数时,如何使用嵌套逻辑的 mongooseJs 进行搜索?
- mysql - 如何定义多对多链接表
- sql - 拆分在 Oracle 中没有分隔符的字符串
- php - Lavarel Auth::check() 不工作
- pandas - 按年分组并计算平均值并计算熊猫的大小
- python - tensorflow 错误:模块没有属性 GraphDef
- c++ - 登录到 Tizen 中的特定文件?
- angular - Angular Route 之一在 Angular Prod Build 中不起作用
- javascript - 如何放大谷歌条形图的文本大小并在每个条形上显示 x 值?