2016-07-10 3 views
3

Eclipse의 기존 프로젝트에서 작업 중이며 Google Play 서비스 (특히 애널리틱스 및 Admob)를 업데이트해야합니다.NoClassDefFoundError with Google Play 서비스 9.2.0 (AdMob)

안드로이드 SDK /extras/ 폴더에서 JAR 파일을 복사하여 오래된 방법으로 9.2.0을 얻으려고 할 때, Google이 Android Studio를 지원하는 AAR 파일로 전환하여 더 이상 가능하지 않습니다.

모든 Google Play 서비스 AAR 모듈이 개별 Android 프로젝트로 확장 된 this GitHub project이 발견되었습니다. 여기에 표시된대로 애널리틱스 및 Admob에 해당하는 프로젝트를 다운로드하고 가져 왔습니다 (https://github.com/dandar3/android-google-play-services-README).

내 프로젝트가 오류없이 성공적으로 컴파일되므로 모든 클래스에 액세스하고 올바르게 연결할 수 있습니다.

Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.ads.internal.client.zze> 
Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.ads.internal.client.zze> 
Rejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.ads.internal.client.zze> 
Shutting down VM 
FATAL EXCEPTION: main 
Process: com.example.app, PID: 22307 
java.lang.NoClassDefFoundError: com.google.android.gms.ads.internal.client.zze 
    at com.google.android.gms.ads.internal.client.zzm.<init>(Unknown Source) 
    at com.google.android.gms.ads.internal.client.zzm.<clinit>(Unknown Source) 
    at com.google.android.gms.ads.internal.client.zzm.zziw(Unknown Source) 
    at com.google.android.gms.ads.internal.client.zzad.<clinit>(Unknown Source) 
    at com.google.android.gms.ads.AdRequest.<clinit>(Unknown Source) 
    at com.google.android.gms.ads.AdRequest$Builder.<init>(Unknown Source) 
    at com.example.AndroidLauncher$1.handleMessage(AndroidLauncher.java:102) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

라인 (102)은,이에 의미를 시작할 때 발생합니다 :

AdRequest adRequest = new AdRequest.Builder().build(); 
5 안드로이드 실행 내 넥서스에 실행에

그러나, 6.0.1 나는 끊임없이 출시에이 나타납니다


내 연구에서 볼 수있는 것은 (진부한) 버그에 대한 참조입니다. 진저 브레드 장치에 영향을 미쳤습니다. 나는 여기에 적용된다고 생각하지 않는다.


편집 :의 요청에 따라 내 build.gradle 파일. 확실하지 내가 구글 Play 서비스에 종속성을 연결하려면이 옵션을 사용하지 않는,하지만 여기 어쨌든 때문에 관련있는 경우 : 나는대로 안드로이드 라이브러리 "플레이 서비스 - 지하"를 추가

buildscript { 
    repositories { 
     mavenCentral() 
     mavenLocal() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.3.1' 
     classpath 'org.robovm:robovm-gradle-plugin:1.11.0' 
    } 
} 

allprojects { 
    apply plugin: "eclipse" 
    apply plugin: "idea" 

    version = '1.0.0-SNAPSHOT' 
    ext { 
     appName = 'sticknodes' 
     gdxVersion = '1.5.5' 
     roboVMVersion = '1.14.0' 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
     maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } 
     maven { url "https://oss.sonatype.org/content/repositories/releases/" } 
    } 
} 

project(":desktop") { 
    apply plugin: "java" 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" 
     compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" 
    } 
} 

project(":android") { 
    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
    } 
} 

project(":android-pro") { 
    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" 
    } 
} 

project(":ios") { 
    apply plugin: "java" 
    apply plugin: "robovm" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "org.robovm:robovm-rt:${roboVMVersion}" 
     compile "org.robovm:robovm-cocoatouch:${roboVMVersion}" 
     compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" 
     compile "org.robovm:robopods-google-mobile-ads-ios:1.14.0" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

project(":ios-pro") { 
    apply plugin: "java" 
    apply plugin: "robovm" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     compile "org.robovm:robovm-rt:${roboVMVersion}" 
     compile "org.robovm:robovm-cocoatouch:${roboVMVersion}" 
     compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" 
     natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

project(":core") { 
    apply plugin: "java" 

    dependencies { 
     compile "com.badlogicgames.gdx:gdx:$gdxVersion" 
     compile "com.googlecode.mp4parser:isoparser:1.1.14" 
     compile fileTree(dir: 'libs', include: '*.jar') 
    } 
} 

tasks.eclipse.doLast { 
    delete ".project" 
} 
+0

Gradle 파일을 게시 할 수 있습니까? – nitinsh99

+0

@ nitinsh99 물론 제 질문을 편집했습니다. – FTLRalph

+0

추가 하시겠습니까? "com.google.firebase : firebase-ads : 9.0.0"을 (를) 귀하의 종속 항목에 컴파일 하시겠습니까? 프로젝트를 정리하고 gradle을 다시 동기화하십시오. – nitinsh99

답변

0

그래서 다음 날 내 프로젝트와 모든 것에 대한 의존성이 작용했습니다. admob/analytics 프로젝트가 암시 적으로 프로젝트를 추가 한 이후로 내 프로젝트에 직접 의존성을 추가해야한다는 것을 알지 못했습니다.

관련 문제