IncompatibleClassChangeError nach Aktualisierung auf Android Build Tools 25.1.6 GCM / FCM

Da ich auf Android SDK Tools 25.1.6 und Android Support Repository 32.0.0 aktualisiert habe (heute Morgen), wurde die folgende Fehlermeldung angezeigt. Ich habe nichts an meinem Code geändert und er funktioniert immer noch auf meinem Kollegencomputer (Android SDK) Tools 25.1.1 + Android Support Repository 30.0.0).

java.lang.IncompatibleClassChangeError: The method 
     'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' 
     was expected to be of type virtual but instead was found to be of type direct 
     (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)

     at com.google.android.gms.iid.zzd.zzeb(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.xxxxxxx.utils.RegistrationIntentService.onHandleIntent(RegistrationIntentService.java:55)
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.os.HandlerThread.run(HandlerThread.java:61)

Hier ist der Code, der abstürzt:

InstanceID instanceID = InstanceID.getInstance(this); // <-- crash here
String instanceIDToken = instanceID.getToken(getString(R.string.google_app_id),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

Es ist, wenn ich versuche, ein Token von Google Cloud Messaging abzurufen.

Ich importiere GCM in Gradle mit aufgeteilten Spieldiensten:

 compile 'com.google.android.gms:play-services-analytics:9.0.0' 
 compile 'com.google.android.gms:play-services-maps:9.0.0'
 compile 'com.google.android.gms:play-services-location:9.0.0' 
 compile 'com.google.android.gms:play-services-gcm:9.0.0' 
 compile 'com.google.android.gms:play-services-base:9.0.0'

BEARBEITE das Deaktivieren von GCM hat das Problem behoben. Ich schätze, ich sollte auf Firebase Cloud Message migrieren.

EDIT2 Mein Gerät empfängt Google Play Services 9.0 (gestern war 8.4.x). Jetzt stürzt es nicht mehr ab, sondern beschwert sich über Modul-Deskriptor

 Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.firebase.auth.ModuleDescriptor"
 Firebase API initialization failure.

Hat jemand einen ähnlichen Fehler und wie kann ich ihn beheben?

FES Besonderer Dank geht an @stegranet../gradlew -q app:dependencies --configuration compile hilft Ihnen zu identifizieren, welche Abhängigkeiten SDK 24.x enthalten.

Hauptproblem ist, dass einige Bibliotheken die neueste Unterstützungsbibliothek mit @ importiere+ -Zeichen anstelle einer Version. Dies verursacht das Problem, indem die neueste verfügbare Version eingeschlossen wird.

So vermeiden Sie+ Abhängigkeiten anmelden;)

Antworten auf die Frage(30)

Ihre Antwort auf die Frage