2017-11-07 1 views
1

Dies scheint der komplette Fehler zu sein:Resolve java.lang.IncompatibleClassChangeError: android.support.v4.content.ContextCompat

11-07 16:07:44.646 27955-27995/com.chatapp.gcm.chatapp E/UncaughtException: java.lang.IncompatibleClassChangeError: android.support.v4.content.ContextCompat 
at com.google.android.gms.iid.zzd.zzeC(Unknown Source) 
at com.google.android.gms.iid.zzd.<init>(Unknown Source) 
at com.google.android.gms.iid.zzd.<init>(Unknown Source) 
at com.google.android.gms.iid.InstanceID.zza(Unknown Source) 
at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source) 
at com.chatapp.gcm.chatapp.gcm.GcmIntentService.registerGCM(GcmIntentService.java:63) 
at com.chatapp.gcm.chatapp.gcm.GcmIntentService.onHandleIntent(GcmIntentService.java:50) 
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) 
at android.os.Handler.dispatchMessage(Handler.java:110) 
at android.os.Looper.loop(Looper.java:193) 
at android.os.HandlerThread.run(HandlerThread.java:61) 

Hier ist die Linie 63 von GcmIntentService.java:

InstanceID instanceID = InstanceID.getInstance(this); 

Hier ist der Code um diese Zeile:

private void registerGCM() { 
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 
String token = null; 

try { 
    InstanceID instanceID = InstanceID.getInstance(this); 
    token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), 
       GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 

    Log.e(TAG, "GCM Registration Token: " + token); 

    // sending the registration id to our server 
    sendRegistrationToServer(token); 

    sharedPreferences.edit().putBoolean(Config.SENT_TOKEN_TO_SERVER, true).apply(); 
} catch (Exception e) { 
    Log.e(TAG, "Failed to complete token refresh", e); 

    sharedPreferences.edit().putBoolean(Config.SENT_TOKEN_TO_SERVER, false).apply(); 
} 

ich habe jetzt für 5 Stunden, dieses Problem zu lösen versucht. Die App stürzt ab, nachdem ich das Google Play-Dienst-Plug-in aktualisiert habe, wie es in einigen anderen Antworten erwähnt wurde. Das Token wird jedoch immer noch nicht generiert. Jede Hilfe wäre willkommen.

Antwort

0

AFAIK, IncompatibleClassChangeError Der Fehler ist in der Regel auf eine fehlende Übereinstimmung zwischen dem SDK, das verwendet wird, und der Version der Google Play-Dienste, die auf dem Gerät verfügbar ist, oder aufgrund von Abhängigkeitskonflikten zurückzuführen.

Mit diesen können Sie declared dependencies in Ihrem build.gradle wenn Sie set up Google Play services überprüfen möchten. Außerdem kann die Verwendung von ResolutionStrategy dazu beitragen, Konflikte mit Abhängigkeitsversionen zu lösen.

Weitere Einsichten, überprüfen diese Links:

Verwandte Themen