首页 > 解决方案 > 无法使用 gradle 插件 3.3 覆盖清单

问题描述

这基本上是我在这个问题上写的文字的副本

任何帮助,将不胜感激:

我正在尝试将我的项目升级到带有 gradle 4.10.1 的 gradle plugin 3.3 并且我的构建失败并出现以下错误

我的代码与此处的代码相同- “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)

标签: android-studioandroid-manifestgradle-plugin

解决方案


def outputDir = manifestOutputDirectory
File directory
if (outputDir instanceof File) {
    directory = outputDir
} else {
    directory = outputDir.get().asFile
}

String manifestPath = directory.toString() + "/AndroidManifest.xml"

推荐阅读