java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android

Ho provato una demo sulla visualizzazione di google maps v2 in android.

Il codice java è,

package com.example.gpslocator;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}    
}

Il codice Xml,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

<fragment 
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:name="com.google.android.gms.maps.MapFragment"/>
</LinearLayout>

Ho aggiunto la chiave API in manifest.xml,

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

<uses-sdk
    android:minSdkVersion="3"
    android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
 The following two permissions are not required to use
 Google Maps Android API v2, but are recommended.
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<permission
    android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE" />

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.gpslocator.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>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="MY_API_KEY" />
</application>

</manifest>

Quando ho provato a lanciare la mia Applicazione si chiude improvvisamente. Quando si esegue il debug, mi ha mostrato l’errore “java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable”.
Ho aggiunto google-play-services.jar file per la mia applicazione.

Il logcat è,

04-09 05:33:53.677: E/Trace(1053): error opening trace file: No such file or directory (2)
04-09 05:33:53.807: W/ActivityThread(1053): Application com.example.gpslocator is waiting for the debugger on port 8100...
04-09 05:33:53.878: I/System.out(1053): Sending WAIT chunk
04-09 05:33:54.207: I/dalvikvm(1053): Debugger is active
04-09 05:33:54.288: I/System.out(1053): Debugger has connected
04-09 05:33:54.288: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.487: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.697: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:54.897: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.097: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.297: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.498: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.708: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:55.907: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:56.167: I/System.out(1053): waiting for debugger to settle...
04-09 05:33:56.367: I/System.out(1053): debugger has settled (1344)
04-09 05:34:06.097: W/dalvikvm(1053): VFY: unable to resolve static field 867 (MapAttrs) in Lcom/google/android/gms/R$styleable;
04-09 05:34:06.097: D/dalvikvm(1053): VFY: replacing opcode 0x62 at 0x000e
04-09 05:40:21.278: D/AndroidRuntime(1053): Shutting down VM
04-09 05:40:21.278: W/dalvikvm(1053): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
04-09 05:40:21.398: E/AndroidRuntime(1053): FATAL EXCEPTION: main
04-09 05:40:21.398: E/AndroidRuntime(1053): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.Activity.onCreateView(Activity.java:4716)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.Activity.setContentView(Activity.java:1881)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.example.gpslocator.MainActivity.onCreate(MainActivity.java:12)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.Activity.performCreate(Activity.java:5104)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.os.Looper.loop(Looper.java:137)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at android.app.ActivityThread.main(ActivityThread.java:5041)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at java.lang.reflect.Method.invokeNative(Native Method)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at java.lang.reflect.Method.invoke(Method.java:511)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
04-09 05:40:21.398: E/AndroidRuntime(1053):     at dalvik.system.NativeStart.main(Native Method)
04-09 05:40:26.487: I/Process(1053): Sending signal. PID: 1053 SIG: 9

In proprietà–>Android–>

java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android

Per favore, uno che mi aiuti. Mi manca ogni riferimento?

InformationsquelleAutor Mahe | 2013-04-09



10 Replies
  1. 29

    Vedere la risposta qui:

    Google Maps Android API v2 – Codice di Esempio si blocca

    Mentre la lista delle domande e una diversa eccezione, la risposta menziona specificamente il problema esatto.

    In particolare, è importante per importare google-play-services_lib come progetto:

    Selezionare File > Import > Android > Existing Android Code Into Workspace e fare clic su Avanti.

    Selezionare Sfoglia…, inserisci [android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib, e fare clic su Fine.

    (Vedere https://developers.google.com/maps/documentation/android/intro sotto “Esempio di Codice”)

    Quindi seguire le istruzioni collegate risposta:

    • Importa la fonte reale per il “google-play-services_lib” progetto di collegamento e di come >Android biblioteca.
      • Fare questo, attraverso il Progetto -> Proprietà -> Android -> Library, Add -> google-play-services_lib (è possibile fare clic destro sul progetto e scegliere Proprietà, quindi selezionare ” Android).
      • Fare non aggiungere un Progetto dipendente attraverso il “Java Build Path” per il progetto, che non ha funzionato per me.
    • Provato lo stesso. Che mancasse di risolvere il Problema. Ho aggiunto tutti i riferimenti, ma non riusciva a trovare la soluzione….
    • Proverò a vedere se riesco a riprodurre l’errore.
    • No, non si può ottenere per fallire in quel modo. Hai detto di aver aggiunto google-play-services.jar – hai provato invece a fare “proprietà del progetto->android->libreria” e poi aggiungere il google-play-services_lib progetto?
    • Sì. ma sta mostrando come il riferimento non è stato considerato. Si prega di guardare l’immagine che ho allegato.
    • Hai veramente importa google-play-services_lib (come progetto) in Eclipse? Vedere developers.google.com/maps/documentation/android/intro sotto il “Codice di Esempio”
    • non ha funzionato per me, seguite tutti i passaggi e ancora si lamenta lo stesso errore
    • Sto usando Titanium Studio e non c’è nessun menù Android in File > Importazione di alcune idee?

  2. 6

    Controllare AndroidManifest.xml file di google-play-services_lib progetto. Dovrebbe essere:

    package="com.google.android.gms"
    • Ho pensato che sarà sempre il caso se si importa Google Play Services Lib?
    • Questo lavoro per me
  3. 1

    Quando si importa google-play-services_lib, selezionare “copia del progetto in area di lavoro”. A me funziona!

  4. 1

    Ho avuto questo stesso problema, e non era in grado di risolvere facendo clic con il google-play-services_lib progetto e rinfrescante. Per qualche motivo il progetto non era sincronizzato con Eclipse che è stata la causa dell’errore.

    • Ha lavorato anche per me
  5. 1

    Ho lo stesso problema.

    Ma Quello che ho fatto è che ho usato com.google.android.gms Versione del Codice in questo 3265130

    Piuttosto che l’utilizzo di com.google.android.gms Versione del Codice in questo 4452000, Che è l’ultima, non so che cosa è il problema, Ma il suo lavoro per me.

    [Seguire i passaggi indicati da Alexander]

    Potrebbe essere lavorare bene con i nuovi Aggiornamenti.

    java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android

    Potrebbe essere lavorare bene con i nuovi Aggiornamenti.

    java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable in android

  6. 0

    Il percorso del file per il google-play-services_lib progetto deve avere solo [A-Z,a-z] non ÄÖÜ. Mi sono mosso per D:\google-play-services_lib\ di quelli importati è nuovo e funziona!

    Dispiace per il mio inglese 😉

  7. 0

    di importazione sia di google-play-services_lib & progetto demo per area di lavoro;
    far fronte android-support-v4.jar per “libs” cartella nella demo del progetto; e poi: proprietà di progetto->android->libreria” e poi l’aggiunta di google-play-services_lib

  8. 0

    Quando hai importato il progetto google-play-services_lib al tuo IDE non dimenticate di controllare le sue proprietà. google-play-services_lib deve essere costruito con la stessa versione di Android (SDK) che si utilizza per il vostro progetto. Per esempio, il vostro progetto e google-play-services sono sia costruire con Android 4.4.2. Dopo di che, si dovrebbe vedere che la lib è correttamente costruito.

    Infine, si dovrebbe aggiungere il seguente meta tag AndroidManifest.xml all’interno del <application> ... </application> tag:

    <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
  9. 0

    Ho avuto molti problemi con le mappe. Ma finalmente successo, costruire!
    Io non uso eclipse, basta riga di comando.
    Prima ho tougth che ho appena copia myProject/libs/file da google-play-services_lib/libs e ececute ant debug … Dopo l’installazione su emulatore android ottengo errore java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable

    Giorno dopo afer ore particolre soluzione:

    1)la Prima copia del catalogo sdk/extra/google/…/google-play-services_lib per il mio progetto di catalogo.

    2)Fare un android update project --target <your target> -p myProject/google-play-services_lib come utente dzeikei detto (per verificare gli obiettivi exec: android list target)

    3)modificare il file “project.proprietà” nella cartella di progetto e aggiungere questa riga alla fine android.biblioteca.di riferimento.1=google-play-services_lib o esegui android update project --target android-19 --path myProject
    --library myProject/google-play-services_lib

    4)ant clean, ant debug …. ma c’era alcuni errori, ad esempio, restituisce null ecc(rendere il mal di testa). ma dopo che la formica creare bin e gen cartelle nella cartella di progetto/google-play-services_lib

    5)l’ater di ricerca tante soluzioni per le età di faind perché ant debug restituiti errori che ho finalmente pezzo e basta copiare e incollare i cataloghi bin e gen myProject/google-play-services_lib/a myProject/bin e myProject/gen

    6)quindi eliminare la linea mi è stato aggiunto in precedenza al punto 3. al di sopra di #android.biblioteca.di riferimento.1=google-play-services_lib, e la copia dei file myProject/google-play-services_lib/libs/google-play-services.jar per myProject/libs/google-play-services.jar

    7)eseguire ant debug

    adb install -r bin/myProject-debug.apk

    e finalmente vide mappa di google nel mio projectApplication su emulatore di android 🙂

    Naturalmente, gli altri stuf come API_KEY o aggiunta e permisions da google maps tutorial che ho fatto prima di compilare il progetto.
    Per vedere la mappa senza promt ad esempio. “Instal Goodle Play Services” utilizzare l’emulatore con i servizi di google già installato. Ho usato delle Api di Google(Google Inc.) da AVD Manager elenco.
    Spero che questo aiuto.

Lascia un commento