Frage

Bekommen NoClassDefFoundError innerhalb des Projekts und in Google Maps für Android Beispiel im Ordner Google-play-services.

Ich habe es bisher versucht:

  • Importieren Sie Google-play-services_lib über den Assistenten in den Arbeitsbereich und stellen Sie sicher, dass der Code in das Verzeichnis kopiert wird
  • Google-play-services_lib manuell in ein Verzeichnis mit Beispiel kopieren und dann in den Arbeitsbereich importieren
  • Jar in den Arbeitsbereich kopieren
  • Google Play-Dienste sind auf Testgeräten installiert (Nexus 5, Galaxy S4)
  • Neben der Bibliothek unter meinem Projekt befindet sich ein grünes Häkchen, wenn Sie zu Eigenschaften> Android gehen
  • Ich kann die Klassen zur Kompilierungszeit im Quellcode sehen, kompiliert ohne Fehler
  • Installierte die Bibliothek vom Android SDK Manager neu und stellte sicher, dass der Schlüssel in der Google API-Konsole korrekt ist;außerdem wurde sichergestellt, dass Version 2 von Maps für diesen Schlüssel aktiviert ist
  • Proguard-Ausnahmen gemäß Integrationsanweisungen hinzugefügt

Irgendwelche Ideen?

Manifestieren:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.package.projectname"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="18"
        android:targetSdkVersion="21" />

    <permission
        android:name="com.package.projectname.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-permission android:name="com.package.projectname.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.package.projectname.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.package.projectname.MapActivity"
            android:label="@string/title_activity_map"
            android:parentActivityName="com.package.projectname.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.package.projectname.MainActivity" />
        </activity>

        <uses-library
            android:name="com.google.android.maps"
            android:required="true" />

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value=“my_key_from_google_api_console” />
    </application>

</manifest>
War es hilfreich?

Lösung

Ich glaube nicht, dass du die Leitung brauchst:

    <uses-library
        android:name="com.google.android.maps"
        android:required="true" />

Tatsächlich denke ich, dass das der Name der alten Kartenbibliothek ist.Versuchen Sie, es zu entfernen, und prüfen Sie, ob dadurch Ihr Problem behoben wird.Stellen Sie außerdem sicher, dass Ihr Code von importiert wird com.google.android.gms.maps und com.google.android.gms.maps.model, die Pakete für Google Maps API V2.

UPDATE

Ihre Build-Konfiguration enthält die Google Play Services-JAR nicht in Ihrer APK.

Um dies in IntelliJ zu beheben: https://stackoverflow.com/a/17977734/1235702

Um dies in Eclipse zu beheben, führen Sie die Schritte 3 und 4 hier aus: https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw (Ich habe dieses Dokument nicht geschrieben, aber ein großes Lob an jeden, der es getan hat!)

  1. Fügen Sie das Google Play Services-Projekt Ihrem Eclipse-Arbeitsbereich hinzu.
    • Klicken Sie auf Datei -> Importieren..., wählen Sie Android -> Vorhandener Android-Code in den Arbeitsbereich Navigieren Sie zu / extras / google / google_play_services /libproject / google-play-services_lib und wählen Sie diese aus
  2. So fügen Sie die Abhängigkeit zu Google Play-Diensten zu Ihrem Projekt hinzu
    • Projekt -> Eigenschaften -> Android -> Bibliothek, Hinzufügen -> Google-Play-services_lib

(Leid;der Abschlag lässt mich die Zahlen nicht explizit auf 3 und 4 setzen.)

Screenshot von OP für die Nachwelt: Eclipse properties for Google Play Services Lib

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top