2015-07-10 10 views
11

Ich erhalte diesen Fehler und das Programm stürzt ab, wenn ich versuche, die App am Telefon auszuführen mit älter als API-Level 22. Allerdings funktioniert die App auf Telefon mit API-Ebene 22. Was könnte der Grund dafür sein.Fehler gefunden: Die Klasse 'android.app.AppOpsManager' konnte nicht gefunden werden, die von der Methode com.google.android.gms.common.GooglePlayServicesUtil.zza referenziert wurde

hier sind meine Abhängigkeiten:

dependencies 
{ 
    compile 'com.google.code.gson:gson:2.3' 
    compile 'com.android.support:appcompat-v7:22.2.0' 
    compile 'com.android.support:recyclerview-v7:+' 
    compile 'com.android.support:support-v4:22.2.0' 
    compile 'com.google.android.gms:play-services:7.5.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.3.0' 
    compile 'com.google.android.gms:play-services-analytics:7.5.0' 

    compile project(':volley') 
    compile project(':adjust_SDK') 
    compile project(':euromessageLib') 
    compile project(':com_viewpagerindicator') 

    compile files('libs/adxtag3.2.6.jar') 
    compile files('libs/jsoup-1.7.3.jar') 
    compile files('libs/CWAC-Adapter.jar') 
    compile files('libs/newrelic.android.jar') 
    compile files('libs/android-query-full.0.26.8.jar') 
    compile files('libs/khandroid-httpclient-4.2.3.jar') 
    compile files('libs/GoogleConversionTrackingSdk-2.2.1.jar') 

    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
} 

und

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 
    defaultConfig { 
     applicationId "com.deneme" 
     minSdkVersion 14 
     targetSdkVersion 22 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles 'proguard.cfg' 
     } 
    } 
    productFlavors { 
    } 
} 

Dank für Hilfe

+0

Ich denke, nutzen Sie einige Themen, die in sdk 22 nur verfügbar sind, – HassanUsman

+0

Versuchen Sie targetSdkVersion 19 eingestellt, und versuchen auf diese – HassanUsman

+0

Es funktioniert immer noch nicht – jackaal

Antwort

17

Nach den Tagen verbringen Paare dieses seltsame Problem zu lösen, schließlich die Ursache des Absturzes gefunden. Obwohl der Fehler weiterhin besteht, läuft das Programm jetzt ohne Probleme.

Der Grund, warum das Programm mit API-Ebene fein läuft 22 und nicht nicht mit unter 21 die Methode Grenze in Android ist die 65K ist. Above 21 unterstützt nativ das Laden mehrerer Dex-Dateien aus APK-Anwendungsdateien, wo dies unter 21 nicht der Fall ist. Dokumente heißt es here

Die Lösung für dieses Problem bei this stackoverflow post

oder

gelöst wird, wenn Sie Google-Dienste spielen, anstatt die ganze APIs der Kompilierung selektiv helfen kompilieren kann. Sie finden weitere Details here.

+0

Was ist, wenn ich weniger als 64k Methoden habe und dies immer noch passiert? –

+0

@PedroOliveira Ich denke, das Hinzufügen android: largeHeap = "true" in manifest Ihrem Problem –

5

Ich folgte den zweiten Ansatz von jackaal erwähnt. Ich hatte die ganzen Spieldienste in meine Größe aufgenommen. Nach dem Entfernen dieser und der Auswahl nur der erforderlichen Play-Dienste hat Apis mein Problem behoben.

Da die Play-Dienste viel apis hat, ist die Gesamtzahl Methode über 65k von selbst aus. Das verursacht Fehler in Handys mit API-Level 21 und darunter.

Vor gradle: -

compile 'com.google.android.gms:play-services:8.4.0' 

Nach gradle: -

compile 'com.google.android.gms:play-services-analytics:8.4.0' 
compile 'com.google.android.gms:play-services-gcm:8.4.0' 
compile 'com.google.android.gms:play-services-location:8.4.0' 
compile 'com.google.android.gms:play-services-plus:8.4.0' 
+0

Dies funktioniert für mich lösen könnte, –

Verwandte Themen