java - 添加外部库后的 Android Studio 错误

标签 java android java-8 android-build

我遇到了以下问题:

我正在编写一个使用谷歌地图的应用程序,我想添加这个外部库

https://github.com/route360/r360-java

我想将 lib 作为 .jar 文件添加到 Android Studio 中,因此我使用 Java 8 使用 Maven 对其进行了编译(使用 Java 7 进行编译无效)。

将 .jar 添加为 lib 并将其添加到依赖项并运行应用程序后,我收到以下错误消息:

Error:PARSE ERROR:
Error:unsupported class file version 52.0
Error:...while parsing net/motionintelligence/client/Constants.class
Error:1 error; aborting
:app:transformClassesWithDexForDebug FAILED
Error: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_91\bin\java.exe'' finished with non-zero exit value 1

在对 SO 进行一些研究后,我发现这可能是我使用的 Java 版本错误的结果,所以我安装了 Java 7,将 Android Studio JDK 更改为 Java 7 并尝试运行该应用程序。结果如下:

Error:java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor version 52.0
Error:  at java.lang.ClassLoader.defineClass1(Native Method)
Error:  at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
Error:  at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
Error:  at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
Error:  at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
Error:  at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
Error:  at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
Error:  at java.security.AccessController.doPrivileged(Native Method)
Error:  at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
Error:  at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
Error:  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
Error:  at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
Error:  at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Error:Exception in thread "main" 
:app:transformClassesWithDexForDebug FAILED
Error: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.7.0_79\bin\java.exe'' finished with non-zero exit value 1

我尝试在 Android API 之间切换,但 SO 的解决方案没有为我解决。

目前我使用的是 API 23 Android 6.0。

这是我的子模块的 build.gradle 文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '24.0.0'

    defaultConfig {
        applicationId "com.example.jule.bachelorapp"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    dexOptions {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.google.android.gms:play-services:9.0.2'
    compile 'com.google.android.gms:play-services-ads:9.0.2'
    compile 'com.google.android.gms:play-services-auth:9.0.2'
    compile 'com.google.android.gms:play-services-gcm:9.0.2'
    compile files('libs/r360-java-client-0.0.1.jar')
}

有谁知道如何消除这些错误?我真的需要使用那个库,所以非常感谢帮助。

最佳答案

Android 在 r360-java 库中不提供当前用于网络的 javax.ws.rs 包,因此您将无法使用该库。

Android 支持的 Java 包列表可用 here .

关于java - 添加外部库后的 Android Studio 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37946689/

相关文章:

java - 找不到以下类: Names of layouts

android - HTML5 应用程序和原生资源

android - 多屏幕支持完整性检查

java - map 上的流过滤器和分组列表

java - 线程与 CompletableFuture

java - 我可以在 Java 中创建没有条件的 1 到 64 位位掩码吗?

java - 将 java 变量传递给 sql (netbeans)

javascript - 如何在URL中使用 anchor 标记?

Windows 操作系统上的 java File.listFiles() 在逻辑上不是连续的

Java 8 流操作执行顺序