【问题标题】:Unity 2018.3 android dex merging issueUnity 2018.3 android dex合并问题
【发布时间】:2020-08-11 12:06:53
【问题描述】:

在您决定将这篇文章视为“重复”而不阅读它之前,请了解我已经查看了大量与该主题相关的帖子,但我找不到适合我的实例的解决方案,包括所有的StackOverflow 建议的。大多数帖子都是针对 Android Studio 而不是统一的。

我的错误是在尝试构建到 android 时在 Unity 中给出的,它在此处崩溃。

CommandInvokationFailure: Gradle build failed. 
C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleDebug"

stderr[
D8: Program type already present: com.unity3d.ads.BuildConfig

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformDexArchiveWithExternalLibsDexMergerForDebug'.

我尝试过使用 build.gradle 文件更改内容,就像很多帖子所建议的那样,但我什么也做不了。

Unity 2018.2 中不存在该错误。我在更新之前检查过,但现在更新抛出了这个问题。

有没有人有任何关于 UNITY 的具体想法在这里做什么?我已经尝试了很多东西,但没有人能帮助我。

感谢您的帮助

【问题讨论】:

  • 这也适用于 2019.1.0b7。在下面的答案中删除广告允许它构建。

标签: android unity3d


【解决方案1】:

您可以打开菜单栏Window下的PackageManage并去掉Advertisement,也可以删除项目目录下Library/PackageCache的com.unity.ads文件来解决这个问题。

【讨论】:

  • 这就是问题所在。固定的!谢谢!
【解决方案2】:

当您添加与您的 compileSdkVersion 不兼容的库时,可能会发生此错误。 在您的情况下,您可以拥有默认情况下未导入的库(现在是) 或者构建工具版本可能存在问题。 (您可以尝试更新它们)

我在几个版本前也遇到过类似的问题,但我不记得我是如何解决的。 我还没有时间升级到 unity 2018.3。 (所以提示更像是猜测,但它可能会帮助您解决问题。)

【讨论】:

  • 感谢您的建议。我很感激并会调查它 - 如果我找到解决方案,我会发布
  • 显然是谷歌广告中介引发了错误。删除后,错误消失了。不知道我稍后会做什么来解决它,但至少它会再次编译。感谢您的建议
  • 可能与此有关:blogs.unity3d.com/2018/08/07/… 所有广告都将由统一广告投放,并由统一或谷歌货币化。(支付彻底统一)也许他们也放弃了 AdMob,但我不熟悉这个话题,所以我可能错了。
  • 也许 Google 放弃了 AdMob for Unity,因为 Google 现在是 Unity 统一拍卖中的另一个广告合作伙伴
  • 如果我理解正确,您是说仅使用 Unity Ads 基本上也能够通过他们的网络拉取谷歌广告?那么在这种情况下,Unity Ads 是更好的选择吗?
【解决方案3】:

我的设置(Mac):
- Android Studio 2.3
- 统一 2019.1.5f1:
- 播放器设置 -> 其他设置 -> 脚本运行时版本 = .Net 4
- 包管理器 -> 广告:已卸载
- 首选项 -> 外部工具 -> Android:选中已使用 Unity 安装(一切)

我的解决方案:
- 从项目中删除 GoogleMobileAds
- 从项目中删除 PlayServicesResolver
- 从项目中删除插件
- 导入包 -> 自定义包 -> GoogleMobileAds.unitypackage(在我的例子中是 3.15.1)

【讨论】:

    【解决方案4】:

    Dex 错误通常发生在您在项目中导入的方法过多时,而不是因为特定的包。我假设升级到新版本会让你将新东西导入你的项目。

    您需要启用 ProGuard。

    原因:http://twinkfed.homedns.org/Android///tools/building/multidex.html

    修复:https://www.youtube.com/watch?v=va0FQNlBUX0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      相关资源
      最近更新 更多