IncompatibleClassChangeError nach dem Update auf Android Build Tools 25.1.6 GCM / FCM


80

Seit ich (heute Morgen) auf Android SDK Tools 25.1.6 und Android Support Repository 32.0.0 aktualisiert habe, ist der folgende Fehler aufgetreten. 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 zu erhalten.

Ich importiere GCM in Gradle mit geteilten 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'

Das Deaktivieren von GCM durch EDIT hat das Problem behoben. Ich gehe also davon aus, dass ich auf Firebase Cloud Message migrieren sollte

EDIT2 Mein Gerät erhält Google Play Services 9.0 (gestern war 8.4.x). Jetzt stürzt es nicht mehr ab, sondern beschwert sich über den Moduldeskriptor

 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 er behoben werden?

FIXED besonderer Dank an @stegranet. ./gradlew -q app:dependencies --configuration compilehilft Ihnen zu identifizieren, welche Abhängigkeiten SDK 24.x enthalten

Hauptproblem ist, dass einige Bibliotheken die neueste Supportbibliothek mit +sign anstelle einer Version importieren . Dies verursacht das Problem, indem die neueste verfügbare Version hinzugefügt wird.

Vermeiden Sie also +Anmeldeabhängigkeiten;)


Anscheinend wird Google Cloud Messaging zu Firebase Cloud Messaging: firebase.google.com/docs/cloud-messaging ist sich nicht sicher, ob es verwandt ist, und untersucht es noch.
Sonique

Ich denke, dies ist kein Problem mit Build-Tools. Es hat mit Google Play Service zu tun. Ich habe Version 9.0.0 verwendet und erhalte immer noch den Fehler sowie die Beschwerde, dass meine Signatur ungültig ist ...
Arnold Balliu

Wie können Sie die Version der Google Play-Dienste auf Ihrem Handy überprüfen? Ich sehe Google Play Music, Spiele usw., aber nichts wie Play-Dienste.
Bschandramohan

Antworten:


37

Ich habe den Gradle-Abhängigkeitsbaum verwendet, um diesen Fehler für mich zu beheben.

Führen Sie einfach aus gradle -q app:dependencies --configuration compile und überprüfen Sie die Ausgabe auf Einträge wie diese:

+--- com.mcxiaoke.viewpagerindicator:library:2.4.1
|    \--- com.android.support:support-v4:+ -> 24.0.0-beta1 (*)

Wie Diego Giorgini sagte, ist diese Version zu hoch (> = 24). Aktualisieren Sie also die Abhängigkeiten in build.gradlelike

compile('com.mcxiaoke.viewpagerindicator:library:2.4.1') {
    exclude module: 'support-v4';
}
compile 'com.android.support:support-v4:23.4.0'

Das Hauptproblem war, dass einige Module die Unterstützungsbibliothek mithilfe eines +Zeichens importieren (wie in Ihrem Beispiel). Dazu gehört auch die neueste Version, die nicht in den Koffer passt. Vielen Dank!
Sonique

1
Ich verstehe nicht, wie Android> = 24 Abhängigkeiten in unser Projekt einbinden kann, wenn wir alles wie folgt angeben. 24. Dies scheint ein neues Problem zu sein, das jetzt Debug-Versionen meiner App blockiert und zu ziemlich viel Verwirrung geführt hat - während die Store-Version mit dem gleichen Code in Ordnung zu sein scheint
Daniel Wilson

Vielen Dank an stegranet für die Bestätigung. Wir veröffentlichen gerade ein Update, um dies zu beheben. Bitte versuchen Sie Version 9.0.1
Diego Giorgini

Android Studio GradleView Plugin zur Analyse Ihres Projekts.
Jignesh Patel

Wo führe ich den folgenden Code aus? "gradle -q App: Abhängigkeiten - Konfiguration kompilieren"
Roee

35

Update 27. Mai:

Wir haben gerade ein Update ( version 9.0.1) veröffentlicht, um die Inkompatibilität zu beheben, die ich in meiner ersten Bearbeitung erwähnt habe.
Bitte aktualisieren Sie Ihre Abhängigkeiten und teilen Sie uns mit, ob dies immer noch ein Problem ist.

Vielen Dank!


ursprüngliche Antwort 20. Mai:

Das Problem, das auftritt, ist auf eine Inkompatibilität zwischen
play-services / firebase sdk v9.0.0und zurückzuführen com.android.support:appcompat-v7 >= 24
(die mit android-N sdk veröffentlichte Version).

Sie sollten in der Lage sein, das Problem zu beheben, indem Sie auf eine frühere Version der Support-Bibliothek abzielen. Mögen:

compile 'com.android.support:appcompat-v7:23.4.0'

2
Dies ist die einzige Lösung, die anscheinend funktioniert hat, danke. Es ist ein wenig beängstigend, dass solche Fehler in Produktionsversionen einfließen können, wenn es Ihnen nichts ausmacht, wenn ich das sage!
Daniel Wilson

Ich habe es getan, aktualisiert: - Kompilieren Sie 'com.google.android.gms: play-services-gcm: 9.0.2' auch com.google.gms: google-services: 3.0.0 ', aber es führt zu einem Multidex-Fehler. Irgendeine Idee!!
Rohit

'com.google.android.gms: play-services-gcm: 9.0.2' hat immer noch dieses Problem
Tom Bevelander

Verwenden von 9.0.2 für alle meine "Play-Services" -Module und "com.google.gms: google-services: 3.0.0" in der Projekterstellung. Verwenden Sie auch die kürzlich veröffentlichte 24.0.0-Unterstützungsbibliothek. Ich konnte den Fehler zu ersetzen "Kompilierung 'com.google.android.gms: Play-Dienste-gcm: 9.0.2'" entfernen , mit "Kompilierung 'com.google.firebase: Feuerbasis -Messaging: 9.0.2'"
c0deblooded

Ich habe diesen Fehler beim Versuch, die Version auf 9.0.1 zu ändern, erhalten.> Beheben Sie den Versionskonflikt entweder durch Aktualisieren der Version des Google Services-Plugins (Informationen zur neuesten Version finden Sie unter bintray.com/android/android-tools/…). ) oder die Version von com.google.android.gms auf 9.0.0 aktualisieren. @Diego Giorgini
Roger Alien

5

meins arbeitete mit folgenden:

App Level Gradle

dependencies {
 compile 'com.android.support:appcompat-v7:23.4.0'
 compile 'com.android.support:design:23.4.0'
 compile 'com.google.android.gms:play-services:9.0.0'
}

Wurzelstufe Gradle

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

2
Das hat bei mir funktioniert ... Ich habe alle Versionen 24.2.1 auf 23.4.0 geändert und getToken funktioniert wieder ... Das ist schrecklich! Jetzt habe ich Angst, die Versionen zu aktualisieren.
EZDsIt

5

Ich habe die Play-Services-Abhängigkeiten in aktualisiert build.gradle

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0'
}

Um den Versionskonflikt entweder durch Aktualisieren der Version des Google Services-Plugins zu beheben, musste ich die Google Services im build.gradleStammordner des Projekts aktualisieren

dependencies {
    classpath 'com.google.gms:google-services:3.0.0'
}

Das neueste Update der Google-Dienste erhalten Sie hier .

Obwohl es die Ausnahme nicht vermeidet, aber die Anwendung auf meiner Seite nicht mehr zum Absturz bringt.

Aktualisieren

Ich könnte den Absturz vermeiden, indem ich das Android Studio von Beta Channel aktualisiere. Aktualisieren Sie dann Ihr platform/build-toolsInside SDK.

Geben Sie hier die Bildbeschreibung ein


Danke, ich habe google-services auf 3.0.0 aktualisiert, aber es hilft nicht :(
sonique

In meinem Fall bekomme ich die Ausnahme in Logcat, aber es stürzt nicht mehr ab
Reaz Murshed

ok, danke für dein Feedback. Verwenden Sie Android Build Tools 25.1.6?
Sonique

Sie haben Recht, es funktioniert mit Play-Services 9.0.0, aber nicht mit Splited Services :(
Sonique

Ich habe es getan, aktualisierte Kompilierung 'com.google.android.gms: play-services-gcm: 9.0.2' auch com.google.gms: google-services: 3.0.0 ', aber es führt zu Multidex-Fehler. Irgendeine Idee!!
Rohit

4

Das Update auf die neueste Version von Google Play Services hat das Problem für mich behoben.

Plugin anwenden: 'com.google.gms.google-services' unten ...

dependencies {
    compile 'com.google.android.gms:play-services:9.0.0'
}

https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project


danke. Ich habe auch aktualisiert, 9.0.0habe aber immer noch das Problem. Ich benutze derzeit Splited gms. : 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'
Sonique

Ich habe versucht zu kompilieren play-services:9.0.0, aber immer noch das gleiche Problem.
Sonique

Ich verwende 'com.google.android.gms: play-services-gcm: 9.0.2', habe aber das gleiche Problem
Tom Bevelander


1

Durch Einbeziehen aller Pakete der Spieldienste

dependencies {
  compile 'com.google.android.gms:play-services:9.0.0'
}

Sie unterdrücken den Fehler, aber das Endergebnis ist, dass der GCM-Token-Abruf nicht funktioniert und wir keine Instanz des GCM erhalten können. Das ist also keine Lösung in meinen Büchern. Wenn jemand eine Idee hat, was los ist, klären Sie uns bitte auf.

BEARBEITEN:

Ich habe GCM durch Firebase ersetzt, Android Studio von 2.1 auf 2.2 aktualisiert, um das Problem der sofortigen Ausführung mit Firebase-Analysen zu beheben, Build-Tools auf 24-rc4 und Plattform-Tools auf 24-rc3 aktualisiert und die Version meiner Support-Bibliotheken auf 23.4.0 beibehalten. Alles scheint jetzt gut zu funktionieren.


es hört sich so an, als
müssten

Ich habe es getan und ich bekomme immer noch den gleichen Fehler. Ich habe GCM vollständig entfernt und auf dieser Grundlage durch FCM ersetzt: developer.google.com/cloud-messaging/android/… Mit der Support-Bibliothek stimmt etwas nicht, nicht mit den GCM- oder FCM-Paketen
Stilianos Tzouvaras,

1

Ich hatte das gleiche Problem und das Zurücksetzen von Android Support Repository 32.0.0 auf Android Support Repository 31.0.0 löste es.


3
Wie können Sie das Android Support Repository zurücksetzen?
Pratama Nur Wijaya

2
Der einzige Weg, den ich gefunden habe, besteht darin, das alte Repository anstelle des neuen zu kopieren. Das Repository befindet sich normalerweise unter dem Android-Ordner, auf den Ihr 'SDK-Manager' verweist (wenn Sie einen Mac verwenden, ist dies wahrscheinlich der Pfad ~ / Library / Android / sdk / extras). Ersetzen Sie im Ordner "Extras" die Ordner "Android" und "Google" durch die alten.
BorisK

Ich fand das Repo hier: dl-ssl.google.com/android/repository/… , dann entpackte ich es nach ../sdk/extras/android und entfernte die vorhandene m2reposity schien bisher zu funktionieren.
Tom Redman

1

Für Android Push-Benachrichtigung mit GCM 2016:

1) Überprüfen Sie in Android SDK-> SDK Tools die Google Play-Dienste

2) In Gradle fügen Sie in Abhängigkeiten nur eine Zeile hinzu:

compile 'com.google.android.gms:play-services-gcm:9.4.0'

(Es gibt keinen bestimmten Klassenpfad und es funktioniert für mich)

3) Sie müssen 3 Klassen erstellen (GCMPushReceiverService, GCMRegistrationIntentService, GCMTokenRefreshListenerService).

4.1) Code für GCMTokenRefreshListenerService:

package com.myapp.android;

/**
 * Created by skygirl on 02/08/2016.
 */
import android.content.Intent;
import com.google.android.gms.iid.InstanceIDListenerService;

public class GCMTokenRefreshListenerService extends InstanceIDListenerService {

    //If the token is changed registering the device again
    @Override
    public void onTokenRefresh() {
        Intent intent = new Intent(this, GCMRegistrationIntentService.class);
        startService(intent);
    }
}

4.2) Code für GCMRegistrationIntentService (ändern Sie die autorisierte Entität mit Ihrer Projektnummer):

package com.myapp.android;

/**
 * Created by Skygirl on 02/08/2016.
 */
import android.app.IntentService;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;

import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.google.android.gms.iid.InstanceID;

public class GCMRegistrationIntentService extends IntentService {
    //Constants for success and errors
    public static final String REGISTRATION_SUCCESS = "RegistrationSuccess";
    public static final String REGISTRATION_ERROR = "RegistrationError";

    //Class constructor
    public GCMRegistrationIntentService() {
        super("");
    }


    @Override
    protected void onHandleIntent(Intent intent) {
        //Registering gcm to the device
        registerGCM();
    }

    private void registerGCM() {
        //Registration complete intent initially null
        Intent registrationComplete = null;

        //Register token is also null
        //we will get the token on successfull registration
        String token = null;
        try {
            //Creating an instanceid
            InstanceID instanceID = InstanceID.getInstance(this);
            String authorizedEntity = "XXXXXXXXXX"; //  your project number

            //Getting the token from the instance id
            token = instanceID.getToken(authorizedEntity, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

            //Displaying the token in the log so that we can copy it to send push notification
            //You can also extend the app by storing the token in to your server
            Log.w("GCMRegIntentService", "token:" + token);

            //on registration complete creating intent with success
            registrationComplete = new Intent(REGISTRATION_SUCCESS);

            //Putting the token to the intent
            registrationComplete.putExtra("token", token);
        } catch (Exception e) {
            //If any error occurred
            Log.w("GCMRegIntentService", "Registration error");
            registrationComplete = new Intent(REGISTRATION_ERROR);
        }

        //Sending the broadcast that registration is completed
        LocalBroadcastManager.getInstance(this).sendBroadcast(registrationComplete);
    }
}

4.3) Code für GCMPushReceiverService:

package com.myapp.android;

/**
 * Created by Skygirl on 02/08/2016.
 */
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.os.Bundle;
import android.support.v4.app.NotificationCompat;

import com.google.android.gms.gcm.GcmListenerService;

//Class is extending GcmListenerService
public class GCMPushReceiverService extends GcmListenerService {

    //This method will be called on every new message received
    @Override
    public void onMessageReceived(String from, Bundle data) {
        //Getting the message from the bundle
        String message = data.getString("message");
        //Displaying a notiffication with the message
        sendNotification(message);
    }

    //This method is generating a notification and displaying the notification
    private void sendNotification(String message) {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        int requestCode = 0;
        PendingIntent pendingIntent = PendingIntent.getActivity(this, requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
        NotificationCompat.Builder noBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.your_logo)
                .setContentTitle("Your Amazing Title")
                .setContentText(message)
                .setPriority(Notification.PRIORITY_MAX)
                .setContentIntent(pendingIntent);
        noBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

        NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(0, noBuilder.build()); //0 = ID of notification
    }
}

5) Vergessen Sie nicht, den Paketnamen zu ändern

6) Fügen Sie in Ihre mainActivity diesen Code ein:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Setup view
        setContentView(R.layout.main);
    mRegistrationBroadcastReceiver = new BroadcastReceiver() {

        //When the broadcast received
        //We are sending the broadcast from GCMRegistrationIntentService

        public void onReceive(Context context, Intent intent) {
            //If the broadcast has received with success
            //that means device is registered successfully
            if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_SUCCESS)){
                //Getting the registration token from the intent
                String token = intent.getStringExtra("token");
                //Displaying the token as toast
                Toast.makeText(getApplicationContext(), "Registration token:" + token, Toast.LENGTH_LONG).show();

                //if the intent is not with success then displaying error messages
            } else if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_ERROR)){
                Toast.makeText(getApplicationContext(), "GCM registration error!", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(), "Error occurred", Toast.LENGTH_LONG).show();
            }
        }
    };

    //Checking play service is available or not
    int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());

    //if play service is not available
    if(ConnectionResult.SUCCESS != resultCode) {
        //If play service is supported but not installed
        if(GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
            //Displaying message that play service is not installed
            Toast.makeText(getApplicationContext(), "Google Play Service is not install/enabled in this device!", Toast.LENGTH_LONG).show();
            GooglePlayServicesUtil.showErrorNotification(resultCode, getApplicationContext());

            //If play service is not supported
            //Displaying an error message
        } else {
            Toast.makeText(getApplicationContext(), "This device does not support for Google Play Service!", Toast.LENGTH_LONG).show();
        }

        //If play service is available
    } else {
        //Starting intent to register device
        Intent itent = new Intent(this, GCMRegistrationIntentService.class);
        startService(itent);
    }
}

//Unregistering receiver on activity paused
@Override
public void onPause() {
    super.onPause();
    Log.w("MainActivity", "onPause");
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mRegistrationBroadcastReceiver);
}



    @Override
    public void onResume() {
 super.onResume();
        Log.w("MainActivity", "onResume");
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(GCMRegistrationIntentService.REGISTRATION_SUCCESS));
        LocalBroadcastManager.getInstance(this).registerReceiver(mRegistrationBroadcastReceiver,
                new IntentFilter(GCMRegistrationIntentService.REGISTRATION_ERROR));
    }

7) Fügen Sie in Ihrer AndroidManifest.xml folgende Zeilen hinzu:

<uses-permission android:name="android.permission.INTERNET" />

8) Kopieren Sie in Ihrem Konsolen-Logcat Ihr Token und fügen Sie es auf dieser Site ein. Fügen Sie Ihre Projektnummer, Ihr Token und eine Nachricht hinzu. Es funktioniert gut für mich :)


Hallo @Skygirl, ich folge deinem Beispiel, eine spezielle Anforderung im AndroidManifest? Könnten Sie bitte diesen Teil des Codes hinzufügen? Danke
ziniestro

0

Nach einem ganzen Tag kann ich zu 100% bestätigen, dass die Optimizely-Bibliothek ebenfalls in irgendeiner Weise zusammenstößt und diesen Fehler verursacht. Um genau zu sein, verwende ich Optimizely via Fabric. Es ist unmöglich, Firebase zu veranlassen, zu initialisieren, während Optimizely auf diese Weise verwendet wird (möglicherweise auf alle Arten?).

Ich habe auf ihrem Github darüber gepostet und werde sie direkt kontaktieren ...

https://github.com/optimizely/Optimizely-Android-SDK/issues/11


0

Ich hatte das gleiche Problem. Ich habe die SDK-Tools auf 25.1.7 rc1 aktualisiert, dann war das Problem behoben.


0

Die SDK-Tools wurden auf 25.1.7 aktualisiert und dieses Problem behoben.


0

Nun, ich bin nur Anfänger in der Verwendung von Android. Ich wollte das Erstellen von Benutzern Firebaseanhand der Anweisungen auf der Firebase-Website testen .

Ich habe diese Zeilen an den angegebenen Stellen hinzugefügt.

Klassenpfad 'com.google.gms: google-services: 3.0.0'

kompiliere 'com.google.firebase: firebase-auth: 9.2.0'

Plugin anwenden: 'com.google.gms.google-services'

Die Methode createUserWithEmailAndPassword zeigte jedoch weiterhin Fehler beim Erstellen von Benutzern. Deshalb habe ich diese Frage besucht, um mein Problem herauszufinden. Ich habe alles gelesen und jeden Rat angewendet. Aber die IT zeigte immer wieder Fehler. Beim Upgrade Android Studio from 2.1.1 to 2.1.2konnte ich jedoch erfolgreich Benutzer erstellen.

Aber als ich nachgesehen habe logcat, wurde zuerst "Firebase API initialization failure""FirebaseApp-Initialisierung erfolgreich" angezeigt und dann angezeigt.

07-09 18:53:37.012 13352-13352/jayground.firebasetest A/FirebaseApp: Firebase API initialization failure. How can I solve

Dies? java.lang.reflect.InvocationTargetException unter java.lang.reflect.Method.invokeNative (native Methode) unter java.lang.reflect.Method.invoke (Method.java:515) unter com.google.firebase.FirebaseApp.zza (Unbekannt) Quelle) unter com.google.firebase.FirebaseApp.initializeApp (unbekannte Quelle) unter com.google.firebase.FirebaseApp.


OK. Vielen Dank. Ich dachte, es wäre gut zu teilen, wie ich mein Problem gelöst habe. (Ich war mir nur nicht sicher, ob ich es vollständig gelöst habe. Ich konnte nach dem Aktualisieren der Android Studio-Version einen Benutzer mit com.google.firebase: firebase-auth: 9.2.0 erstellen, aber es ist immer noch ein Fehler bei der Initialisierung der Firebase-API in logcat aufgetreten ) Ich werde das nächste Mal die Schaltfläche "Frage stellen" verwenden.
Jayground

0

Ich bin mit diesem Problem konfrontiert und ändere meine App-Gradle-Version von 1.5.0 auf 2.0.0.

Klassenpfad ändern

com.android.tools.build:gradle:1.5.0

zu

classpath 'com.android.tools.build:gradle:2.0.0


0

Lösung 1:

dependencies {
 compile `com.android.support:appcompat-v7:23.4.0`
 compile `com.android.support:support-v4:23.4.0`
 compile `com.android.support:design:23.4.0`
 compile `com.google.android.gms:play-services:9.0.0`
}

Lösung 2: Inkompatibel im Ordner .idie / library /. Erkennen. Manchmal deklarieren Sie Play-Services-Anzeigen: 8.4.0 gleichzeitig mit Play-Services-gcm: 9.0.0. Sie müssen inkompatible Bibliotheken von build.grade überschreiben, die Sie erkannt haben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.