2016-06-21 6 views
3

У меня есть следующая проблема:Android Studio ошибки после добавления внешней библиотеки

Я программирование приложения, которое использует Google Maps, и я хотел бы добавить эту внешнюю LIB

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

Я хотел добавить lib как .jar-файл в Android Studio, поэтому я скомпилировал его с Maven с помощью Java 8 (компиляция с 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 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') 
} 

Кто-нибудь знает, как избавиться от этих ошибок? Мне действительно нужно использовать эту библиотеку, поэтому помощь будет высоко оценена.

+0

'Unsupported major.minor version 52.0'. Это происходит потому, что файлы классов не совместимы с вашей JRE. Вам нужно J2SE 8, чтобы избежать этой ошибки. Возвращаясь назад к 8, включите multidex в своем градиенте. Что-то вроде 'defaultConfig { multiDexEnabled true }'. – Jimmy

ответ

1

Android не предоставляет пакет javax.ws.rs, который в настоящее время используется для сетей в библиотеке r360-java, поэтому вы не сможете использовать эту библиотеку.

Доступен список поддерживаемых Android пакетов Java here.

+0

Плохая новость для меня, но спасибо за ответ. Я потратил часы, пытаясь решить эту проблему, но теперь, по крайней мере, я знаю, что вызвало это. Спасибо! –

+0

Где находится пакет javax.ws.rs? –

+0

Если вы посмотрите на пакет 'net.motionintelligence.client.api.request', например. https://github.com/route360/r360-java/blob/master/src/main/java/net/motionintelligence/client/api/request/PolygonRequest.java - вы увидите ссылки и использование 'javax.ws .rs.client.Client' –