虽然您可能已经知道这一点,但我正在使用Java / Libgdx。我也用Eclipse运行Ubuntu 12.04,如果这意味着什么。
我对此做了一些研究,有些人遇到了同样的问题,但却出现了不同的错误。无论如何,我尝试了他们的解决方案,但无济于事。
无论如何,我的问题是虽然我的freetypefonts加载在我的桌面上完美运行 项目,每当我尝试在eclipse中将android项目编译成apk时,它就出现了 有关dex加载或其他东西的奇怪错误。这可能是什么?我完全按照this教程。
这是我尝试编译时遇到的错误 -
[2014-01-11 12:13:49 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/badlogic/gdx/graphics/g2d/freetype/FreeType$Pointer;
[2014-01-11 12:14:08 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/badlogic/gdx/graphics/g2d/freetype/FreeType$Pointer;
[2014-01-11 18:08:48 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/badlogic/gdx/graphics/g2d/freetype/FreeType$Pointer;
[2014-01-11 18:12:16 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/badlogic/gdx/graphics/g2d/freetype/FreeType$Pointer;
[2014-01-11 18:12:37 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/badlogic/gdx/graphics/g2d/freetype/FreeType$Pointer;
我应该尝试使用Hiero还是喜欢别的东西?
答案 0 :(得分:4)
你有特定的类重复。好像你要两次加入罐子。
右键单击您的Android项目 - >属性 - > Java构建路径 - >订单和导出选项卡,并检查您没有添加两次jar,尝试取消选中私有库。
答案 1 :(得分:2)
我已经在这个问题上挣扎了近2个小时,但终于找到了确切的问题。在我的例子中,我在“libs”文件夹和build.gradle中都有gdx-freetype.jar。 但是你可以看到,在“核心”项目中有一个从libs和其他所有来自com.badlogicgames.gdx编译jar的依赖项:
dependencies {
compile fileTree(dir: '../libs', include: '*.jar')
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-ai:$aiVersion"
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
}
在这种情况下,编译器会编译两次gdx-freetype,因此我们有“多个dex文件定义”错误。
解决方案就是从libs文件夹中删除这些jar。 希望这有帮助!