2015-07-10 8 views
11

Ho ricevuto questo errore e il programma si blocca quando provo a eseguire l'app sul telefono con una versione precedente al 22 ° livello dell'API. Tuttavia, l'app funziona correttamente sul telefono con livello di API 22. Quale potrebbe essere la ragione.Errore: impossibile trovare la classe 'android.app.AppOpsManager', referenziato dal metodo com.google.android.gms.common.GooglePlayServicesUtil.zza

ecco la mia dipendenze:

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; 
    } 
} 

e

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 { 
    } 
} 

grazie per aiuto

+0

Credo che si utilizzano alcuni temi che sono disponibili solo in sdk 22 – HassanUsman

+0

Prova a targetSdkVersion impostare 19 e provare su questo – HassanUsman

+0

E ' non funziona ancora – jackaal

risposta

17

Dopo aver trascorso due giorni per risolvere questo strano problema, finalmente trovato la causa dello schianto. Anche se l'errore persiste, il programma gira senza problemi ora.

Il motivo per cui il programma funziona correttamente con livello API 22 e non con 21 è il limite del metodo in Android che è 65K. Sopra 21 supporta in modo nativo il caricamento di più file dex dai file APK dell'applicazione dove non ce n'è uno inferiore a 21. Documenti afferma che here

La soluzione per questo problema è risolto in this stackoverflow post

o

se si utilizza Google Play Services, invece di compilare tutto l'API, selettivamente compilare può aiutare. Puoi trovare maggiori dettagli here.

+0

Cosa succede se ho meno di 64k metodi e questo succede ancora? –

+0

@PedroOliveira penso aggiungendo android: largeHeap = "true" in manifest potrebbe risolvere il tuo problema –

5

Ho seguito il secondo approccio menzionato da jackaal. Ho incluso tutti i servizi di gioco nel mio gradle. Dopo aver rimosso questo e selezionato solo i servizi di riproduzione richiesti, l'apis ha risolto il mio problema.

Poiché i servizi di riproduzione hanno un sacco di apis, il conteggio del metodo totale è oltre 65k di per sé. Quindi questo causa errori nei telefoni cellulari con api 21 e sotto.

Prima Gradle: -

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

Dopo 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

Questo funziona per me, –