构建播放器时出错:CommandInvokationFailure:无法将类转换为 dex 格式
Posted
技术标签:
【中文标题】构建播放器时出错:CommandInvokationFailure:无法将类转换为 dex 格式【英文标题】:Error building Player: CommandInvokationFailure: Unable to convert classes into dex format 【发布时间】:2015-03-31 09:28:10 【问题描述】:请帮我解决这个问题。这是我在控制台中得到的:
Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
C:\Program Files\Java\jdk1.8.0_25\bin\java.exe -Xmx1024M -Dcom.android.sdkmanager.toolsdir="D:/Android SDK/sdk\tools" -Dfile.encoding=UTF8 -jar "D:/Unity3D/Data/BuildTargetTools/AndroidPlayer\sdktools.jar" -
stderr[
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/qn;
at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:122)
at com.android.dx.dex.file.DexFile.add(DexFile.java:161)
at com.android.dx.command.dexer.Main.processClass(Main.java:732)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:673)
at com.android.dx.command.dexer.Main.access$300(Main.java:83)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:602)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.processDirectory(ClassPathOpener.java:229)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:158)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:632)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:510)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:280)
at com.android.dx.command.dexer.Main.run(Main.java:246)
at com.android.dx.command.dexer.Main.main(Main.java:215)
at com.android.dx.command.Main.main(Main.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at SDKMain.main(SDKMain.java:130)
1 error; aborting
]
stdout[
processing archive bin\classes.jar...
processing com/unity3d/player/a$1.class...
processing
还有一百万个正在处理的东西……花了 320k 行,所以我无法将它粘贴到这里。
【问题讨论】:
如果您发布代码并描述您想要的结果,您可能会获得更多帮助。 我只想构建apk而已 除非您提供详细信息,否则我们无能为力。 drive.google.com/file/d/0BxqarX4aBkGSZU5ER2F2Z2hheEU/… 这里是完整的代码。我制作了一个仅包含 ongui 功能的 2d 游戏我添加了 facebook sdk、google ads sdk,我已经从 sdk manager 安装了所有 android sdk,我已经安装了 admob 插件 vntis。但我没有使用 facebook sdk。我的电脑是 64 位的 【参考方案1】:这通常发生在插件上。在项目的资源管理器中搜索任何重复的 jar。删除所有重复项。如果它不能解决您的问题,请尝试删除项目的“插件”文件夹,然后重新导入所有插件。希望能解决。
【讨论】:
【参考方案2】:我通过简单地将 Java 路径从 Open Unity 更改为 Edit --> Preferences --> External Tools in JDK 解决了这个问题。 (这个 jdk 文件夹实际上是在系统上运行的)。
【讨论】:
以上是关于构建播放器时出错:CommandInvokationFailure:无法将类转换为 dex 格式的主要内容,如果未能解决你的问题,请参考以下文章