IncompatibleClassChangeError após atualizar para o Android Build Tools 25.1.6 GCM / FCM

Como atualizei para o Android SDK Tools 25.1.6 e o Android Support Repository 32.0.0 (hoje de manhã), recebi o seguinte erro, não alterei nada no meu código e ele ainda está funcionando no computador do meu colega (Android SDK Tools 25.1.1 + Repositório de suporte do Android 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)

Aqui está um trecho de código que trava:

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

É quando tento obter um token do Google Cloud Messaging.

Estou importando o GCM em Gradle com serviços de reprodução divididos:

 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'

EDITAR desativar o GCM corrigiu o problema, então, acho que devo migrar para o Firebase Cloud Message

EDIT2 Meu dispositivo recebe o Google Play Services 9.0 (ontem foi 8.4.x). Agora ele não trava mais, mas reclama do descritor do módulo

 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.

Alguém tem um erro semelhante e como corrigi-lo?

FIXO agradecimentos especiais a @stegranet../gradlew -q app:dependencies --configuration compile ajuda a identificar quais dependências incluem o SDK 24.x

O principal problema é que algumas bibliotecas importam a biblioteca de suporte mais recente usando+ assinar em vez de uma versão. Isso causa o problema, incluindo a versão mais recente disponível.

Então evite+ entrar em dependências;)

questionAnswers(14)

yourAnswerToTheQuestion