java - Android Studio 本地库模块问题

标签 java android android-studio gradle dex

我已经启动了一个新的 Android Studio 项目并为我将要处理的库创建了一个新模块,但是当我构建项目时出现问题,我收到了这个错误:

    AGPBI: {"kind":"error","text":"Error converting bytecode to dex:\nCause: java.lang.RuntimeException: Exception parsing classes","sources":[{}],"original":"UNEXPECTED TOP-LEVEL EXCEPTION:\njava.lang.RuntimeException: Exception parsing classes\n\tat com.android.dx.command.dexer.Main.processClass(Main.java:752)\n\tat com.android.dx.command.dexer.Main.processFileBytes(Main.java:718)\n\tat com.android.dx.command.dexer.Main.access$1200(Main.java:85)\n\tat com.android.dx.command.dexer.Main$FileBytesConsumer.processFileBytes(Main.java:1645)\n\tat com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)\n\tat com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)\n\tat com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)\n\tat com.android.dx.command.dexer.Main.processOne(Main.java:672)\n\tat com.android.dx.command.dexer.Main.processAllFiles(Main.java:574)\n\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)\n\tat com.android.dx.command.dexer.Main.run(Main.java:277)\n\tat com.android.dx.command.dexer.Main.main(Main.java:245)\n\tat com.android.dx.command.Main.main(Main.java:106)\nCaused by: com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)\n\tat com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)\n\tat com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)\n\tat com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)\n\tat com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)\n\tat com.android.dx.command.dexer.Main.parseClass(Main.java:764)\n\tat com.android.dx.command.dexer.Main.access$1500(Main.java:85)\n\tat com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684)\n\tat com.android.dx.command.dexer.Main.processClass(Main.java:749)\n\t... 12 more\n","tool":"Dex"}
AGPBI: {"kind":"error","text":"1 error; aborting","sources":[{}]}

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_20\bin\java.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.008 secs

我创建了一个新项目,里面除了 app 模块上的 MainActivity 类和 lib 模块上的简单类之外什么都没有,结果是一样的。有什么解决办法吗?谢谢。

最佳答案

在编译纯 java lib(无 android 插件)以在 android 上使用时,您必须使用 JDK 7,我使用的是 JDK 8,所以这就是 dex 的问题。

关于java - Android Studio 本地库模块问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970143/

相关文章:

android - ExoPlayer 在恢复时恢复状态

java - Cucumber JUnit 测试未将功能粘合到步骤定义

android - 是否可以将 Xamarin 项目编译为适用于 iOS 和 Android 的库?

java - 运行 runnable 后应用卡住

java - 如何将 .dex 文件转换为 android studio 项目

java - 使用 Intent 切换 View (android studio)

android-studio - 为什么Android Studio默认使用Gradle 2.14.1而不是最新版本?

java - TestNg 在组中运行时跳过@BeforeSuite 和@BeforeClass

java - 当 invokeAll() 的线程数少于任务数时会发生什么?

java - 动态选择端口号?