Unity3D-导出APK报错CommandInvokationFailure: Unable to convert classes into dex format.

今天使用Unity导出APK时,提示我

CommandInvokationFailure: Unable to convert classes into dex format.

然后打开Editor Log查看了下原因,上面显示是这样的:

Android PostProcess task "Creating staging area" took 12.988 ms
Android PostProcess task "Preparing Unity resources" took 53.404 ms
Android PostProcess task "Splitting assets" took 108.298 ms
Android PostProcess task "Processing OBB assets" took 0.237 ms
Android PostProcess task "Preparing Unity libraries" took 2819.138 ms
Android PostProcess task "Processing resources" took 6.315 ms
Android PostProcess task "Preparing APK resources" took 34.494 ms
Android PostProcess task "Process plugins" took 131.363 ms
Android PostProcess task "Processing AAR plugins" took 4378.021 ms
Android PostProcess task "Processing Android libraries" took 20.819 ms
Android PostProcess task "Creating Android manifest" took 1655.11 ms
Android PostProcess task "Compiling resources" took 3346.134 ms
Android PostProcess task "Verifying Android libraries" took 56.886 ms
CommandInvokationFailure: Unable to convert classes into dex format.
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/guojicheng/Documents/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -


stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoJellyBeanMr2;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoStubImpl;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatIcs;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompatJellyBeanMr2;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/animation/AnimatorCompatHelper;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/animation/AnimatorListenerCompat;


重要的是看到有个“already added: Landroid/support/v4 ” 的提示,由此可知,是因为一个classes包重复存在了,需要删除。

我里面使用了谷歌广告,默认给我加了两个jar包:android-support-v4.jar,只要把这个删除,就可以编译出APK啦。

最后在网上看到,有 Unable to convert classes into dex format. 的提示基本都是有重复的jar问题,只要看看Edtior Log就可以了。

至于Editor Log怎么看,打开Unity编辑器,右击console 的Tab,会有一个 open editor log的选项,打开就可以了。这个东西非常好用,还可以看看导出的资源,有时候可以检查导出资源是否重复,什么资源占用的多,然后又针对性的优化包大小,都可以从这里入手。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值