我在intelliJ中创建了一个库。这是一个休息客户端,我想在android项目中导入它。我想在intelliJ中单独开发库,因为它允许我在没有实际的Android应用程序的情况下测试它,但只是在控制台中。当我想在android工作室中导入库时,我收到一个错误。我尝试了导入库的所有方法(很多都来自SO)。这就是我的工作:
我转到项目结构,选择依赖项并从我在.jenJ中创建的.jar文件的文件夹中添加。在IntelliJ中,我做了Artifact,然后将其构建为.jar。我把它移到Android工作室,它不起作用。 Bellow是我在Android studio中编译项目时遇到的错误。
Error:Execution failed for task ':app:preDexDebug'.
com.android.ide.common.internal.LoggedErrorException:无法运行命令: C:\ Users \ Gregor \ AppData \ Local \ Android \ android-studio \ sdk \ build-tools \ android-4.4.2 \ dx.bat --dex --output C:\ Users \ Gregor \ AndroidStudioProjects \ Perla \ app \ build \ pre-dexed \ debug \ PerlaRestAPI-985193a1adafac50f74c01c1069cd74ce9c69b55.jar C:\ Users \ Gregor \ AndroidStudioProjects \ Perla \ app \ libs \ PerlaRestAPI.jar 错误代码: 1 输出: 意外的顶级例外情况: com.android.dx.cf.iface.ParseException:错误的类文件魔术(cafebabe)或版本(0034.0000) 在com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472) 在com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406) 在com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388) 在com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251) 在com.android.dx.command.dexer.Main.processClass(Main.java:665) 在com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 在com.android.dx.command.dexer.Main.access $ 600(Main.java:78) 在com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:572) 在com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 在com.android.dx.command.dexer.Main.processOne(Main.java:596) 在com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) 在com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 在com.android.dx.command.dexer.Main.run(Main.java:230) 在com.android.dx.command.dexer.Main.main(Main.java:199) 在com.android.dx.command.Main.main(Main.java:103) ...在解析api / Game.class时 1错误;中止
答案 0 :(得分:3)
IntelliJ中的库是用Java 7编译的吗?这可能是导致dex工具失败的原因。 Android仅支持Java 6。
编辑:从Android 5.0开始不再适用,现在需要Java 7。
答案 1 :(得分:0)
我遇到了错误消息bad class file magic (cafebabe) or version (0034.0000)
,并采取了以下步骤来成功解决问题:
JavaVersion.VERSION_1_7
注意您的JAR文件存在一个可能的问题,该文件具有使用Android当前不支持的Java版本编译的依赖项。