java.lang.noclassdeffounderror: com.google.android.gms.R $ styleable

Sto creando un’applicazione Android utilizzando Google Maps. ecco il codice:

MapFragActivity.java

import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; public class MapFragActivity extends FragmentActivity { private GoogleMap map; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_map_frag); map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); } } 

AndroidManifest.xml:

                     

activity_map_frag.xml:

    

quando provo questo codice ottengo un errore, ecco il log:

 01-17 10:01:17.685: E/AndroidRuntime(8923): FATAL EXCEPTION: main 01-17 10:01:17.685: E/AndroidRuntime(8923): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:272) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.Activity.setContentView(Activity.java:1835) 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.him.mapfrag_rnd.MapFragActivity.onCreate(MapFragActivity.java:16) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.Activity.performCreate(Activity.java:4470) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.ActivityThread.access$600(ActivityThread.java:127) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.os.Handler.dispatchMessage(Handler.java:99) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.os.Looper.loop(Looper.java:137) 01-17 10:01:17.685: E/AndroidRuntime(8923): at android.app.ActivityThread.main(ActivityThread.java:4511) 01-17 10:01:17.685: E/AndroidRuntime(8923): at java.lang.reflect.Method.invokeNative(Native Method) 01-17 10:01:17.685: E/AndroidRuntime(8923): at java.lang.reflect.Method.invoke(Method.java:511) 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:986) 01-17 10:01:17.685: E/AndroidRuntime(8923): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:753) 01-17 10:01:17.685: E/AndroidRuntime(8923): at dalvik.system.NativeStart.main(Native Method) 

quando apporto alcune modifiche in MapFragActivity.java, viene visualizzata la mappa. ecco le modifiche:

 package com.him.mapfrag_rnd; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.SupportMapFragment; public class MapFragActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_map_frag); SupportMapFragment fragment = new SupportMapFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, fragment).commit(); } } 

Il cambiamento che ho fatto è stato commentato da setContentView. Ho seguito tutti i passaggi richiesti e continuo a ricevere errori. se decommenta il setContentView (), poi di nuovo ho ricevuto l’errore.

Per favore aiuto!!!

    Quello che devi fare è includere una libreria di Google Play Services nel tuo progetto. Google ha ottime istruzioni qui:

    Inoltre, c’è un avvio rapido che ho trovato molto utile durante il tentativo di far funzionare Google Maps v2.

    Se stai usando Idea Intellij,

    1. Seleziona il tuo progetto dal pannello del progetto
    2. Premi F4 per aprire la finestra della struttura del progetto
    3. Seleziona Moduli dal pannello di sinistra, quindi fai clic sul pulsante +, quindi seleziona “importa modulo” e vai a ” ANDROID-SDK ” / extra / google / google_play_services / libproject / google-play-services_lib. Facendo questo, questo progetto verrà aggiunto ai moduli insieme al tuo progetto
    4. Seleziona il tuo progetto, quindi seleziona “Dipendenze” (è una scheda) dal pannello di destra. Fai clic sul pulsante +, quindi su “3 dipendenze del modulo …” e seleziona “google-play-services_lib”.
    5. Fai di nuovo clic sul pulsante +, quindi su “1 jar o directory …” e vai alla cartella “/ libs” nel percorso sopra e seleziona “google-play-services.jar”.
    6. Fare clic su OK e chiudere la finestra della struttura del progetto.

    Nota : assicurati di non aver aggiunto il progetto “google-play-services_lib” come libreria in “Librerie” (pannello a sinistra sotto Moduli). Se lo hai, puoi andare su ” Librerie e semplicemente rimuoverlo. Google Play Library non dovrebbe apparire nelle biblioteche .

    Nota 2 : puoi copiare l’intera directory google-play-services-lib nel tuo progetto se desideri che sia in controllo di versione o simile.

    Penso che tu debba importare l’intera libreria di Google Play Service sul tuo IDE, non solo su .jar

    Provalo 😉

    Ho risolto il problema controllando innanzitutto che la lib di servizi di gioco sia stata aggiunta correttamente e aggiungendo questi dati nel file manifest sotto il tag dell’applicazione

    Ho lo stesso errore. Io uso Android Studio e Gradle quindi non ci sono troppe cose da configurare o migliorare. Ho fatto quasi tutto ma non hanno funzionato per me. L’ultimo funziona: sostituisci l’intero pacchetto di servizi di gioco con quelli più piccoli. Nel mio caso:

    Sostituisci (nel file build.gradle):

     compile 'com.google.android.gms:play-services:8.4.0' 

    di:

     // Google Cloud Messaging compile 'com.google.android.gms:play-services-gcm:8.4.0' // Google Location compile 'com.google.android.gms:play-services-location:8.4.0' 

    ho anche avuto questo errore in Android Studio e avevo già incluso i servizi di riproduzione alpha 3 con gradle alpha5, quello che ho fatto di sbagliato era che avevo incluso multidex.

    in gradle

    multiDexEnabled true

    e in onCreate della class Application

    MultiDex.install (questo);

    ma ho dimenticato di estendere la class Application con MultiDexApplication

    perché MultiDexApplication non è stato esteso in modo tale che non possa includere gms e qualsiasi altra class dex, quindi sta dando errore all’avvio di gms String.

    Spero che questo aiuti

    Controlla il file AndroidManifest.xml del tuo progetto google-play-services_lib. Dovrebbe essere:

     package="com.google.android.gms" 
    1. Utilizza il download di Android SDK Manager “google play services”

    2. importalo nel tuo spazio di lavoro (percorso: root di Android-sdk / extras / google / google_play_service / libproject / google-play-service_lib)

    3. Proprietà progetto -> Android -> Libreria aggiungi google-play-service_lib

    4. Crea percorso -> Ordina ed esporta controlla le librerie private di Android

    Ho risolto questo errore controllando ” Copia progetti nello spazio di lavoro ” durante l’importazione della lib di Google Play Services.
    Maggiori informazioni qui: http://developer.android.com/google/play-services/setup.html

    Ho seguito il link http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html

    e ho aggiunto il progetto della libreria google-play-services_lib alla mia applicazione. Stava lavorando bene fino a ieri. Ma al giorno ho l’eccezione di cui sopra. È a causa dell’assenza di Google Play Library o del mio progetto che non è in grado di accedere ai file dalla libreria. Ho ricostruito il mio progetto ma non è riuscito. Poi ho ricostruito il progetto della libreria google-play-services_lib ma non ho speranza. Poi ho provato l’opzione “crea tutto” in eclipse e funziona perfettamente.

    inserisci la descrizione dell'immagine qui

    Se utilizzi servizi Google Play divisi (consulta qui: https://developers.google.com/android/guides/setup#split )

    Devi includere i servizi di riproduzione di base sul tuo file gradle:

     compile 'com.google.android.gms:play-services-base:7.5.0' 

    L’utilizzo di Servizi di riproduzione scivolosi evita l’errore di 65k e riduce la tua app

    Questo servizio di due google aggiunge al build.gradle Ha funzionato per me .. compilare ‘com.google.android.gms: play-services-appindexing: 8.1.0’ compilare ‘com.google.android.gms: play-services : 8.1.0’