Unity 2018.3 android dex合并问题

时间:2019-01-01 17:28:10

标签: android unity3d

在您决定甚至不阅读此帖子就将其视为“重复”之前,请了解我看过与该主题相关的大量帖子,并且找不到适用于我的实例的解决方案,包括所有实例该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中不存在。我在更新之前进行了检查,但此更新现在引发此问题。

有人在联合国有什么具体想法吗?我已经尝试了很多事情,但是还没有人能够帮助我。

感谢您的帮助

4 个答案:

答案 0 :(得分:3)

您可以在菜单栏中的“窗口”下打开PackageManage并删除“广告”,也可以删除项目目录中Library / PackageCache的com.unity.ads文件来解决此问题。

答案 1 :(得分:1)

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

我之前有几个版本有类似的问题,但是我不记得如何解决。 我还没有时间升级到Unity 2018.3。 (因此,提示更像是猜测,但是它可以帮助您解决问题。)

答案 2 :(得分:0)

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

我的解决方案:
-从项目中删除GoogleMobileAds
-从项目中删除PlayServicesResolver
-从项目中删除插件
-导入程序包->自定义程序包-> GoogleMobileAds.unitypackage(在我的情况下为3.15.1)

答案 3 :(得分:0)

Dex错误通常是由于您在项目中导入了太多方法而引起的,而不是因为特定的程序包。我认为升级到新版本会使您将新内容导入到项目中。

您需要启用ProGuard。

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

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