java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable dans Android
J'ai essayé une démo sur l'affichage de google maps v2 android.
Le code java est,
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;
}
}
Le code Xml est,
<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>
J'ai ajouté de la clé API dans 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>
Quand j'ai essayé de lancer mon Application se ferme d'un coup. Quand je debug, Il m'a montré le message d'erreur "java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable".
J'ai ajouté google-play-services.jar fichier à ma demande.
Le logcat est,
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
Dans les propriétés-->Android-->
S'il vous plaît tout un m'aider. Ai-je raté une référence?
source d'informationauteur Mahe
Vous devez vous connecter pour publier un commentaire.
Voir la réponse ici:
Google Maps API Android v2 - Exemple de Code se bloque
Alors que la question des listes d'une autre exception, la réponse mentionne spécifiquement votre problème exact.
Plus précisément, il est important d'importer
google-play-services_lib
comme un projet:Sélectionnez
File > Import > Android > Existing Android Code Into Workspace
et cliquez sur Suivant.Cliquez sur Parcourir..., entrez
[android-sdk-folder]/extras/google/google_play_services/libproject/google-play-services_lib
, et cliquez sur Terminer.(Voir https://developers.google.com/maps/documentation/android/intro sous "Code Échantillon")
Puis suivez les instructions à partir de la liés réponse:
Vérifier
AndroidManifest.xml
fichier de votre google-play-services_lib projet. Devrait être:Lorsque vous importez google-play-services_libcochez la case "copier le projet dans l'espace de travail". Il fonctionne pour moi!
J'ai eu ce même problème, et j'ai été en mesure de le résoudre en cliquant droit sur le google-play-services_lib projet et rafraîchissant. Pour une raison quelconque, le projet n'a pas été synchronisé avec Eclipse qui a été la cause de l'erreur.
J'ai le même problème.
Mais Ce que j'ai fait est que j'ai utilisé com.google.android.gms Code de Version de cette 3265130
Plutôt que d'utiliser com.google.android.gms Code de Version de cette 4452000, Qui est la dernière, je ne sais pas ce qu'est la question, Mais son travail pour moi.
[Suivez les étapes indiquées par Alexandre]
Peut-être bien travailler avec de nouvelles Mises à jour.
Peut-être bien travailler avec de nouvelles Mises à jour.
Le chemin d'accès au fichier de la
google-play-services_lib
projet doit avoir seulement[A-Z,a-z]
pasÄÖÜ
. J'ai déménagé àD:\google-play-services_lib\
que l'importation de ce nouveau et ça marche!!!Désolé pour mon anglais 😉
importer à la fois google-play-services_lib & projet de démonstration sur l'espace de travail;
face android-support-v4.jar pour "libs" dossier en vertu du projet de démonstration; et puis: les propriétés du projet->android->bibliothèque", puis en ajoutant le google-play-services_lib
Regarder John Oleynik suit: http://www.stackoverflow.com/a/15709686/20146 .
Ce qui a fonctionné pour moi.
Lorsque vous avez importé projet google-play-services_lib votre IDE n'oubliez pas de vérifier ses propriétés. google-play-services_lib doit être construit avec la même version du kit SDK d'Android que vous utilisez pour votre projet. Par exemple, votre projet et google-play-services sont à la fois construire avec Android 4.4.2. Après cela, vous devriez voir que la lib est correctement construit.
Enfin, vous devez ajouter la balise meta suivante à l'AndroidManifest.xml à l'intérieur de la
<application> ... </application>
tags:J'ai eu beaucoup de problèmes avec les cartes. Mais enfin le succès, de construire!
Je n'utilise pas eclipse, juste ligne de commande.
D'abord je croyais que je viens de copier sur myProject/libs/fichiers à partir de google-play-services_lib/libs et ececute ant debug ... Après l'installation sur émulateur android j'obtiens l'erreur java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
Jour plus tard, après des heures plut solution:
1)d'Abord, je copie catalogue sdk/extras/google/.../google-play-services_lib à mon myProject catalogue.
2)Faire un
android update project --target <your target> -p myProject/google-play-services_lib
comme utilisateur dzeikei dit (à vérifier des cibles exec:android list target
)3)modifier le fichier "projet.les propriétés" dans le dossier monprojet, et ajoutez cette ligne à la fin android.de la bibliothèque.de référence.1=google-play-services_lib ou d'exécuter
android update project --target android-19 --path myProject
--library myProject/google-play-services_lib
4)
ant clean
ant debug
.... mais il y avait quelques erreurs, par exemple, de retourner la valeur null etc(faire de mal de tête). mais après cette fourmi créer bin et gen dossiers dans le dossier monprojet/google-play-services_lib5)ater à la recherche de nombreuses solutions pour les âges de faind pourquoi ant debug retourné erreurs que j'ai enfin le bout et il suffit de copier les catalogues de la corbeille et de la génération de myProject/google-play-services_lib/à myProject/bin et myProject/gen
6)puis supprimer la ligne que j'ai été ajouté précédemment au point 3. au-dessus de #android.de la bibliothèque.de référence.1=google-play-services_lib, et la copie du fichier myProject/google-play-services_lib/libs/google-play-services.jar pour myProject/libs/google-play-services.jar
7)exécuter
ant debug
et finalement vu google map dans mon projectApplication sur émulateur android 🙂
Bien sûr d'autres stuf comme API_KEY ou l'ajout et autorisations de google maps tutoriel j'ai fait avant, j'ai compiler le projet.
Pour voir la carte sans promt par exemple. "Instal Goodle Play Services" utilisation de l'émulateur avec les services google déjà instalé. J'ai utilisé Google Api(Google Inc.) à partir de l'AVD Manager de la liste.
J'espère que cela Vous aidera.