java.lang.NoClassDefFoundError unter Android mit GoogleAccountCredential.newChooseAccountIntent ()
Ich entwickle für Android 4+ mit Eclipse Juno ADT Bundle + Google Plugin für Eclipse. Ich muss mich programmgesteuert in einem Google-Konto anmelden, um die Google Kalender-API verwenden zu können. Hierfür nutze ich den Account Manager. Ich erhalte folgenden Fehler:
05-05 13:28:55.605: E/AndroidRuntime(11186): FATAL EXCEPTION: main
05-05 13:28:55.605: E/AndroidRuntime(11186): java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
05-05 13:28:55.605: E/AndroidRuntime(11186): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.newChooseAccountIntent(GoogleAccountCredential.java:171)
05-05 13:28:55.605: E/AndroidRuntime(11186): ...
Hier ist der Code, der es verursacht:
GoogleAccountCredential credential;
credential = GoogleAccountCredential.usingOAuth2(this, CalendarScopes.CALENDAR);
chooseAccount();
private void chooseAccount() {
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
}
Ich habe Stackoverflow nach Lösungen durchsucht. Das libs-Verzeichnis enthält die Kalenderbibliotheksdateien für Eclipse, die ich über das Google-Plugin für Eclipse importiert habe (in denen auch die Authentifizierungsbibliotheken usw. enthalten sind):
android-support-v4.jar
google-api-client-1.14.1-beta.jar
google-api-client-android-1.14.1-beta.jar
google-api-services-calendar-v3-rev41-1.14.2-beta.jar
google-http-client-1.14.1-beta.jar
google-http-client-android-1.14.1-beta.jar
google-http-client-gson-1.14.1-beta.jar
google-http-client-jackson-1.14.1-beta.jar
google-http-client-jackson2-1.14.1-beta.jar
google-oauth-client-1.14.1-beta.jar
gson-2.1.jar
jackson-core-2.1.3.jar
jackson-core-asl-1.9.11.jar
jsr305-1.3.9.jar
Diese scheinen jedoch nicht zu umfassen
com.google.android.gms.common.AccountPicker
Wenn ich dies in meinen Code importiere, wird die Code-Importzeile als Fehler markiert. Na, was is los. Ich habe diesen Code aus dem Google Kalender-Beispiel kopiert, in dem er einwandfrei ausgeführt wird:
http://samples.google-api-java-client.googlecode.com/hg/calendar-android-sample/
Dieser Code hat genau die gleichen Bibliotheken außer:
kalender lib ist rev33 statt rev41jackson- und jackson-asl-bibliotheken fehlen.properties-Datei für jede Bibliotheksdatei, die im Beispielcode, jedoch nicht in meinem Code vorhanden istDas sollte also nicht das Problem sein. Im Importabschnitt des Codes hat der Google Kalender-Beispielcode jedoch Folgendes:
import com.google.android.gms.common.GooglePlayServicesUtil;
Wenn ich jedoch versuche, diese Codezeile in meinen Code einzufügen, wird dies als Fehler markiert, der besagt, dass der Import von com.google.android.gms.common.GooglePlayServicesUtil nicht behoben werden kann.
Dieser Beitrag
java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker
sagt, dass sie in der Lage waren
import com.google.android.gms.common.AccountPicker;
Aber ich würde gerne wissen, aus welcher Bibliothek das kam.
Ich habe sogar versucht, im ursprünglichen Android-Kalenderbeispiel nach der Bibliothek zu suchen, aus der ich com.google.android.gms.common. * Einbinden kann, indem ich jeweils eine Datei inspiziere, konnte sie jedoch nicht finden. Wie ist es möglich?
Was mache ich falsch?
Vielen Dank für all Ihre Hilfe.