获取错误说 - 创建签名的 apk 时“条目名称‘res/layout/test_toolbar.xml’发生冲突”

Saa*_*yem 86 android android-studio build.gradle signed-apk build-variant

我今天已将我的 android studio 从3.5.x更新到3.6,并且在为构建变体生成签名的 apk 时出现错误,显示以下消息 - Entry name 'res/layout/test_toolbar.xml'发生冲突 我在整个项目中根本没有任何像这样命名的布局。我有一个名为“ stage ”的自定义构建变体,每当我尝试构建签名的 apk 时,它总是失败。我算找到任何解决方案。请帮我解决这个问题。谢谢

更新: 以下消息也可能出现同样的问题(正如我在AS - 3.6.1 -有时继续 4.xx 中发现的那样)。所以不要担心这些未知和不可解析的消息。到目前为止,我在生成签名的 apk 时发现了两种新类型的消息:

  • Entry name 'kotlin/collections/MapWithDefault.kotlin_metadata' collided
  • Access Denied

结果是一样的。有时您可能需要为此向Invalidate Cache and Restart您的 AS。让我知道你的发现。谢谢

快速解决方案是:(作为最受欢迎的答案,我同意)

  1. 删除 projectFolder\build 删除 projectFolder\debug
  2. 删除项目文件夹\发布
  3. 删除 projectFolder\app\build
  4. 删除 projectFolder\app\build\debug
  5. 删除 projectFolder\app\build\release

所以你需要删除所有的构建、调试和发布目录。

请注意,您可能无法删除整个 debug 和 release 目录,但可以删除其所有内容。

dan*_*apd 136

在阅读下面的解决方案之前,请阅读我从 01.04.2020 开始的更新,问题更深,它在您的代码中。

在此 3.6 更新后,我遇到了同样的问题。

快速的解决方案是:

  1. 删除 projectFolder\build
  2. 删除项目文件夹\调试*
  3. 删除项目文件夹\发布*
  4. 删除 projectFolder\app\build
  5. 删除 projectFolder\app\build\debug*
  6. 删除 projectFolder\app\build\release*

所以你需要删除所有的构建、调试和发布目录。

请注意,您可能无法删除整个debug 和 release目录,但可以删除其所有内容。

更新:

我认为他们今天已经修复了这个错误: 在此处输入图片说明

2020 年 3 月 3更新:不幸的是,该错误并未修复。

2020 年 4 月 1 日更新:(不是 4 月 1 日的笑话:))

从一个月以来我与 Android Studio 开发人员一起工作,今天我被告知使用 JDK 而不是使用 JRE,因为日志中的一个深层错误说它。

设置JDK(后文件- >项目结构- > SDK位置- > JDK位置),而不是JRE的,我已经得到了未在“生成输出”所示,所以我跑了一些其他错误分析- >检查代码,并获得EIGHTEEN错误例如在布局中引用错误的视图 id,方向错误(hi to tools:ignore="MissingDefaultResource")和清单中的错误也有方向:我读到这是 3.6.1 中的一些新更新 - 关于横向或纵向screenOrientation,由 Studio 快速修复: <activity tools:ignore="LockedOrientationActivity" />

当所有错误都通过分析 -> 检查代码修复后,我成功地使用 JDK 生成了一个签名的 APK,然后使用 JRE(仅用于测试)。

所以总而言之,这个错误是由于深度错误引起的,你只能通过Inspect Code工具来发现。

我认为 AS 不会认为这是一个错误,我认为他们会说这是改进代码的新功能。另外,我认为即使没有设置 JDK 而不是 JRE,您也应该尝试检查您的代码。

来自 AS 支持的其他建议:

顺便说一句,在导出release构建时,我们还会运行lintVital它进行一些额外的检查,并将一些错误标记为fatal. 此检查很昂贵,因此不会在debug构建中发生

  • 谢谢,“Build &gt; Rebuild Project”在 Android Studio 3.6.2 中为我修复了这个问题。 (5认同)
  • 多谢。我已经解决了。您确定这是稳定版本(真的)吗? (2认同)

小智 60

我删除了构建变体的先前构建输出,包括 APK 文件。这就是帮助我的原因

  • 我尝试删除整个“build”目录,仍然遇到同样的问题。你能详细说明一下你做了什么吗? (2认同)

小智 44

升级到最新的Android Studio 3.6.1时遇到的问题

清除缓存,清理项目,删除build文件夹都没有解决问题。


删除之前编译生成的apk即可。


小智 22

更新到 Android Studio 4.1 后,我遇到了类似的问题,对我来说是“条目名称 'classes.dex' 发生冲突”。使用“生成签名包/APK”选项构建应用程序时出现错误。

解决方案很简单:确保 Android Studio 在构建时没有运行应用程序(停止运行,然后重试)。

  • 感谢您的提示;-) 对我来说,只是电话已连接 (4认同)
  • 这对我来说大部分时间都有效(AVD 而不是连接手机),但有时需要重新启动 Android Studio。 (2认同)

小智 21

在生成 apk 时,检查目标文件夹,从 debug 文件夹中删除 output.json 和 app-debug.apk。在此之后尝试构建相同的。AFAIK,这是 android studio 的一个错误,希望他们能尽快解决这个问题:)


小智 13

此问题已通过删除存在于 release 和 debug 文件夹中的先前版本生成的 APK 得到解决。

如果您尚未删除以前生成的 APK,则使缓存和重建无效将无济于事


小智 8

更新 android studio 后我遇到了同样的错误,我只通过清理项目(Build > Clean Project)来解决这个问题!:)


小智 5

这可能有点矫枉过正,但我​​:

  1. 删除项目/构建文件夹
  2. 删除项目/应用程序/构建文件夹
  3. 文件 > 使缓存无效/重新启动
  4. 清洁工程


Gk *_*mon 5

我只是删除所有调试的APKmyProject\app\build\outputs\apk\debug目录中,它为我工作。