Android GoogleAPIClient - NoClassDefFoundError: com / google / android / gms / intern / zzsa

8

Ich entwickle eine App, die GoogleAPIClient verwendet, um (offensichtlich) den aktuellen Standort des Benutzers im Hintergrund zu finden.

Für diese Aufgabe verwende ich IntentService mit WakefulBroadcastReceiver (um den Standort jede Stunde zu bekommen). Alles funktionierte gut in der Entwicklungsumgebung, aber bei der Bereitstellung im Play Store erhalten einige Geräte diesen Fehler:

%Vor%

Ich habe im Internet nach Antworten gesucht, aber ich habe nichts gefunden. Hier ist der Punkt, an dem die Ausnahme auftritt:

%Vor%

Vielen Dank!

BEARBEITEN

App build.gradle

%Vor%

Stammprojekt build.gradle

%Vor%

BEARBEITEN 2

Mit Fabric kann ich jetzt sehen, dass alle Benutzer, die von diesem Problem betroffen sind, Android 4.x verwenden. Vielleicht ist die Verteilung von Play-Services fehlerhaft, ich weiß es nicht. Aber es verringert die Anzahl der Geräte mit diesem Fehler.

    
Elvis Oliveira 29.01.2016, 11:48
quelle

3 Antworten

2

Sie erhalten

  

Schwerwiegende Ausnahme: java.lang.NoClassDefFoundError:   com / google / android / gms / intern / zzsa          unter com.google.android.gms.common.api.GoogleApiClient $ Builder. (Unbekannt   Quelle)

NoClassDefFoundError in Java kommt Wenn Java Virtual Machine zur Laufzeit keine bestimmte Klasse finden kann, die während der Kompilierungszeit verfügbar war.

OLD

%Vor%
  

GoogleApiClient wird mit einer Vielzahl von statischen Methoden verwendet. Einige   Diese Methoden erfordern, dass GoogleApiClient verbunden wird, einige werden   Anrufe anstehen, bevor GoogleApiClient verbunden ist;

%Vor%

Sie sollten es mit Ihrem build.gradle

versuchen
  

Datei der obersten Ebene, auf der Sie Konfigurationsoptionen hinzufügen können, die häufig verwendet werden   alle Unterprojekte / Module.

%Vor%

Hinweis Sie können

anrufen
  1. compile 'com.android.support:appcompat-v7:23.1.1' anstelle von %Code%

Dann v7:23+ .Hope das hilft.

Bearbeiten

  

Das Android-Build-System besteht aus einem Android-Plugin für Gradle.   Gradle ist ein erweitertes Build-Toolkit, das Abhängigkeiten verwaltet und verwaltet   ermöglicht es Ihnen, benutzerdefinierte Build-Logik zu definieren. Android Studio verwendet eine Gradle   Wrapper, um das Android-Plugin für Gradle vollständig zu integrieren. Das Android   Plugin für Gradle läuft auch unabhängig von Android Studio.

Ein Plugin ist einfach jede Klasse, die die Plugin-Schnittstelle implementiert. Gradle stellt die Kern-Plugins als Teil seiner Distribution zur Verfügung, so dass Sie einfach das Plugin wie oben beschrieben anwenden müssen.

  

mit beta2 und alpha-5 Gradle zeigen keinen Fehler. Aber ohne "bewerben"   plugin: 'services' "und 'classpath' wird nicht generiert   gcm_defaultSenderId für GCM

Sie können Abrufen einer Instanz-ID <überprüfen / p>

Sie sollten Plugin anwenden verwenden.

    
IntelliJ Amiya 14.02.2016, 07:20
quelle
0

Dies ist eindeutig ein Fehler bei der Progard-Konfiguration von gms (Google Play Services).

  • Entweder wird es von einer falschen Version verursacht, gegen die Sie bauen, und Sie können gegen eine andere Version bauen.
  • Oder es wird durch die auf dem Gerät installierten Play Services verursacht, und Sie können nur hoffen, dass das Play Services-Team die Roolout-Version dieser Version gestoppt hat, bis der Fehler behoben ist.
rds 13.02.2016 23:51
quelle
0

ENDLICH! Ich habe wörtlich mehrere Stunden damit verbracht, dieses Problem zu lösen, vielleicht ist es bereits gelöst worden, aber es stellt sich heraus, dass jede der von Ihnen verwendeten Google-Klassen die gleiche Version in der Größe sein muss, d. H.

%Vor%

Ich habe zwei verschiedene Versionen angerufen. Einmal habe ich es zufällig dazu gemacht:

%Vor%

Der Klassenfehler wurde behoben!

    
JenniferG 14.02.2016 19:37
quelle