试图让Kryonet与Android合作

时间:2013-12-20 04:18:38

标签: java android libgdx kryonet

好的,我已经用谷歌搜索了这个问题,但我无法解决我的问题。

首先我正在使用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;

2 个答案:

答案 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)

哇,好吧,我被激怒了。谢谢Kumar Bibek帮助我。我正在回答我自己的问题,以防万一其他人和我一样多,而且谷歌和我一样运气不好:)

好的,首先将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 :))