好的,我已经用谷歌搜索了这个问题,但我无法解决我的问题。
首先我正在使用eclipse在libGDX框架内制作游戏。 我在我的项目中导入了kryonet。
当我为PC编译时它可以工作。
我的问题是当我为Android编译时,它给了我这个错误:
Dx trouble writing output: already prepared
[Dex Loader] Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/jsonbeans/Json$FieldMetadata;
[-android] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/jsonbeans/Json$FieldMetadata;
我已尽我所能,我已将这些库添加到我的android项目中的构建列表中,我已将它们添加到android项目的/ lib文件夹中。我删除了我的DEX文件夹。我清理了我的构建并重新启动。我的/ gen在我的订单上面是我/ src并且导出我显然缺少一些基本的东西。今天我用谷歌搜索了这一切。
我正在使用的库.JARs与Kryonet相关:
asm
jsonbeans
junit
kryo
kryo-debug
minlog
minlog-none
objenesis
reflectasm
有人可以帮帮我吗?谢谢:))
-edit-如果我删除jsonbean我得
[2013-12-19 22:35:43 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/kryo/ClassResolver;
[2013-12-19 22:35:43] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/kryo/ClassResolver;
答案 0 :(得分:4)
Dx trouble writing output: already prepared [Dex Loader] Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/jsonbeans/Json$FieldMetadata; [-android] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/esotericsoftware/jsonbeans/Json$FieldMetadata;
正如它所说,同一个包的重复引用。您需要确定这些包在您添加的库中的确切位置。并想办法只保留一份副本。
我猜kyronet已经包含了jsonbeans。可以尝试从依赖项列表中删除jsonbeans库。
答案 1 :(得分:1)
好的,首先将Kryonet的源安装到您的主GDX项目/ src文件夹(独立于平台的项目)。
接下来将所需的.JAR复制到主GDX项目的/ lib中。
然后在Eclipse中右键单击主项目并将库添加到构建路径中。确保在订单和导出下检查它们(这可能没有必要)
(这是我犯了错误的地方)确保你没有把所需的.JAR放到你的android源文件夹的/ lib中只在主GDX项目/ lib文件夹中
然后在Eclipse中右键单击您的Android GDX项目并单击Add JARs。在此菜单中,进入主GDX项目的/ lib文件夹,并为Kryonet添加所有必需的JAR。然后进入Order and Export并检查所有这些JAR。
现在你可以编译你的Android GDX项目再次感谢堆栈溢出我爱你。我希望这是有道理的,并帮助其他新手,因为我现在相当醉了lol :))