2016-06-30 4 views
4

Ich arbeite in einem Android-Projekt mit Android Studio.Konflikte zwischen verschiedenen Google Play Services-Versionen in einer App (9.2) und einer Drittanbieterbibliothek (8.4)

Dieses Projekt ist eine App, die einige Bibliotheken von Drittanbietern verwendet. Einer von ihnen nutzt Google Play Services 8.4.0, aber meine App nutzt Google Play Services 9.2.0, und ich muss diese Version für einige spezifische Funktionen der App verwenden.

Wenn ich kompilieren und führen Sie die Anwendung mit dieser Abhängigkeiten

Kompilierung 'com.google.android.gms: Play-Dienste-gcm: 9.2.0' Kompilierung ‚com.google.android.gms: Play-Services-Standort: 9.2.0'

ich diesen Fehler (zusammenfassend), wenn ich die App und den Code der dritten Teil Bibliothek ausführen ausgeführt:

FATAL AUSNAHME: Haupt Prozess : com.beispiel.app, PID: 507 java.lang.NoClassDefFoundError: Fehlgeschlagene Auflösung von: Lcom/google/android/gms/maps/model/LatLng; Verursacht durch: java.lang.ClassNotFoundException: Nicht Klasse "com.google.android.gms.maps.model.LatLng" auf Pfad: DexPathList

Wenn ich die Google Play-Dienste Version 8.4 degradieren. 0 es funktioniert ok, das Problem ist, dass ich meine App Google Play Services 9.2.0 Features aus der App entfernen muss.

Gibt es eine Möglichkeit, die Drittanbieterbibliothek dazu zu zwingen, ihre eigene Version der Google Play Services-Bibliothek zu verwenden und meiner App die Verwendung der letzten Version der Google Play-Dienste zu gestatten?

+0

Hallo in Ihrer Anwendung verwenden, I Play-Dienste-ane Version 9.6.8 auf myflashlab gefunden mit meinem AIR Android-Projekt (AIR SDK 24,0) verwenden. Ich bekomme den gleichen Laufzeitfehler: CalssNotFoundException in der LatLng-Klasse. Hast du dein Problem gelöst? Wenn ja, bitte hilf mir, dieses Problem zu lösen. – Mazhar

Antwort

1

Beim Aktualisieren auf Version 9.x.x gibt es viele Probleme/Probleme mit dem Google Play-Dienst. Von jetzt an denke ich, es ist immer noch einige bug issue.

Nun, für den Fehler, den Sie erhalten java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.model.LatLng" on path: DexPathList. Es ist ein Problem mit der JAR-Datei, die Sie für die Google Maps-API verwenden. Überprüfen Sie das Glas oder laden Sie das richtige Glas. Sie können das Jar dekompilieren und Klassen anzeigen. Die Klassendatei ist nicht vorhanden, da sie im Protokoll erwähnt wird.

Sie können auch die andere Lösung versuchen, ist das so Fragen:

+0

Warten Sie, ich nehme gms.common aus der jar-Datei von play-services-base als separate Datei (für Adobe AIR build) auf. Es enthält ** GooglePlayServicesUitl.class **.Zur Laufzeit stürzt meine App jedoch ab mit: 'ClassNotFoundException Die Klasse GooglePlayServicesUtil im Pfad DexPathList wurde nicht gefunden. –

0

Verwendung dieses in Ihrem Projekt build.gradle

dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.2' 
    classpath 'com.google.gms:google-services:3.0.0' 
    // NOTE: Do not place your application dependencies here; they belong 
    // in the individual module build.gradle files 
} 

und diese build.gradle

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 

    compile 'com.android.support:appcompat-v7:24.0.0' 
    compile 'com.android.support:design:24.0.0' 
    compile 'com.google.android.gms:play-services-auth:9.2.0' 
    compile 'com.android.support:cardview-v7:24.0.0' 
    compile 'com.android.support:support-v4:24.0.0' 
    compile 'com.mcxiaoke.volley:library-aar:1.0.0' 

} 
apply plugin: 'com.google.gms.google-services' 
+0

Warum funktioniert das? Es sieht so aus, als ob zwei verschiedene Versionen importiert werden. – Gi0rgi0s

+0

wo ist zwei verschiedene Versionen. Ich benutze dies in meiner App und es funktioniert gut. –

+0

Ich glaube, es funktioniert. Ich frage mich nur, warum, denn für mich sieht es so aus, als ob "play services 3.0.0" und "play services 9.2.0" importiert werden. Ich verstehe etwas falsch. – Gi0rgi0s