条目名称 'AndroidManifest.xml' 发生冲突(将 android gradle 插件更新到 3.6.0 后构建失败)

Rik*_*ati 24 android gradle android-studio build.gradle android-gradle-plugin

我最近将 Android Studio 从 3.5(稳定)更新到 3.6(稳定)。

然后我看到插件更新也可用了,所以我把“com.android.tools.build:gradle”的版本从3.5.0更新到了3.6.0,也把gradle版本更新到了5.6.4。

现在当我尝试构建项目时问题就开始了;它失败并显示消息条目名称“AndroidManifest.xml”碰撞

在此处输入图片说明

小智 66

这是由 Android Gradle 插件 3.6 引起的

通过在您的gradle.properties文件中包含以下内容来恢复使用旧的打包工具将解决此问题

android.useNewApkCreator=false
Run Code Online (Sandbox Code Playgroud)

更多信息请查看发行说明:https : //developer.android.com/studio/releases/gradle-plugin#zipflinger

  • 你应该在哪里添加这个? (2认同)
  • gradle.properties (2认同)
  • 使用这个,我在安装时收到错误,无法在设备上解析 APK。 (2认同)

Mar*_*sta 16

我通过将其添加到应用程序的 build.gradle 中找到了一种解决方法:

android {
    packagingOptions {
        exclude 'AndroidManifest.xml'
    }
}
Run Code Online (Sandbox Code Playgroud)

由于 Facebook 的 Audience Network,我在 Android Studio 3.5 上解决了创建捆绑包的问题。


kec*_*ccs 7

根据问题,当 JAR 依赖项包含AndroidManifest.xml文件时会发生这种情况。

对于我的项目,原因是这个旧的依赖项:

androidTestImplementation 'com.google.android:android-test:4.1.1.4' 
Run Code Online (Sandbox Code Playgroud)

其中依赖于com.google.android:android:4.1.1.4JARAndroidManifest.xml中的哪个。

我是怎么找到它的

我搜索了包含(我使用 Total Commander)的$HOME\.gradle\caches\modules-2\files-2.1所有文件.jarAndroidManifest.xml

然后我将结果与我的应用程序的依赖项交叉引用。要获取依赖关系树,请使用 Gradle 工具窗口运行 Tasks/android/androidDependency gradle 任务。


and*_*_su 5

我收到类似的错误:条目名称“resources.arsc”发生冲突。@Marco Batista 所说的解决方法:

android {
    packagingOptions {
        exclude 'resources.arsc'
    }
}
Run Code Online (Sandbox Code Playgroud)