J'obtiens l'exception suivante lorsque j'essaie d'utiliser la bibliothèque Google Play Services V2 après avoir suivi le tutoriel officiel .
Java.lang.NoClassDefFoundError: com.google.Android.gms.R$string
at com.google.Android.gms.common.GooglePlayServicesUtil.b(Unknown Source)
at com.google.Android.gms.common.GooglePlayServicesUtil.a(Unknown Source)
at com.google.Android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source)
Où est-ce que je me suis trompé?
La version 2 comprend des ressources et doit être importée en tant que projet de bibliothèque. Voir les instructions sur http://developer.Android.com/google/play-services/setup.html pour savoir comment procéder dans divers IDE.
Les ressources sont destinées à GooglePlayServicesUtil.getErrorDialog (), qui demande à l'utilisateur d'installer, de mettre à jour, d'activer, etc. les services Google Play s'il n'est pas disponible sur l'appareil.
J'ai également les mêmes problèmes une fois, j'ai suivi l'étape correctement et j'ai pu résoudre ce problème
Premièrement (Configurez votre projet à partir de la console développeur de Google) Allez à Console API - Code Google
Créer un projet comme indiqué dans les images
Cliquez sur Créer puis vous demanderez d'ajouter un nom de projet comme indiqué
une fois que vous avez créé votre projet, il est temps de sélectionner le service que nous devons utiliser, dans ce cas, nous avons besoin de la carte Android v2 alors sélectionnez la Google Maps Android API v2 du service Comme indiqué,
Accédez maintenant à Api Access et créez votre OAuth 2.0 .En fournissant votre nom de package et votre empreinte SHA1 dans les champs correspondants.
une fois que vous avez terminé avec OAuth 2.0, nous sommes prêts à utiliser votre clé API
Maintenant, créez un projet Android avec le même nom de package utilisé lors de la création du OAuth 2.0. Et vérifiez si vous avez le service google play dans Android SDK Manager, sinon installez le service google play.
Après avoir installé Google playservice, vous trouverez une bibliothèque Google play dans Your Android YourSdkpath\extras\google\google_play_services. Importez ce projet dans votre espace de travail et donnez-le comme bibliothèque de réfraction à votre projet
Après cela, placez les fichiers Java et xml correspondants dans votre projet).
MainActivity.Java
package yourpackage;//Package name used while creating the Api key
import com.google.Android.gms.common.ConnectionResult;
import com.google.Android.gms.common.GooglePlayServicesUtil;
import com.google.Android.gms.maps.GoogleMap;
import com.google.Android.gms.maps.SupportMapFragment;
import Android.os.Bundle;
import Android.app.Activity;
import Android.app.Dialog;
import Android.support.v4.app.FragmentActivity;
import Android.view.Menu;
public class MainActivity extends FragmentActivity {
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Getting status
int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
// Showing status
if(status==ConnectionResult.SUCCESS)
{
SupportMapFragment supportMapFragment = (SupportMapFragment)
getSupportFragmentManager().findFragmentById(R.id.map);
// Getting a reference to the map
googleMap = supportMapFragment.getMap();
}
else{
int requestCode = 10;
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(status, this, requestCode);
dialog.show();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
activity_main.xml
<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/map"
Android:name="com.google.Android.gms.maps.SupportMapFragment"
Android:layout_width="wrap_content"
Android:layout_height="match_parent" />
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="yourpackage"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk
Android:minSdkVersion="8"
Android:targetSdkVersion="16" />
<permission
Android:name="yourpackage.permission.MAPS_RECEIVE"
Android:protectionLevel="signature"/>
<uses-permission Android:name="yourpackage.permission.MAPS_RECEIVE"/>
<uses-permission Android:name="Android.permission.INTERNET"/>
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission Android:name="com.google.Android.providers.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="yourpackage.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="YourAPIkey"/>
J'espère que cela vous aidera
Pour Android Studio:
1) Ouvrir les paramètres du module:
2) Ajouter (importer) le module google_play_service_lib à partir du SDK
3) Module google_play_service_lib check en tant que bibliothèque
4) Ajouter la bibliothèque google_play_service.jar à partir du SDK
5) Terminer
Si vous avez déjà mis à niveau le SDK et obtenez une telle erreur, n'oubliez pas de:
AndroidManifest.xml
<application
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version" />
</application>
J'utilise également ourSdkpath\extras\google\google_play_services comme bibliothèque Eclipse importée comme décrit ci-dessus.
si vous utilisez
compile 'com.google.Android.gms:play-services:9.0.2'
changer en individuels tels que
compile 'com.google.Android.gms:play-services-location:9.0.2'
ajoutez également compile 'com.Android.support:multidex:1.0.1'
si tu as multiDexEnabled=true
J'ai résolu cette erreur en cochant "Copier les projets dans l'espace de travail" lors de l'importation de la bibliothèque des services google play.
Plus d'informations ici: http://developer.Android.com/google/play-services/setup.html
Je suis également confronté au même problème. Si vous exécutez votre application dans l'émulateur, il se peut que cette erreur se produise, car dans la plupart des émulateurs, Google PlayService (application Play Store) n'est pas installé.
Essayez donc d'exécuter votre application sur Android qui est l'application playService est installé.
Solution: - ajoutez le code de pièce d'erreur dans try...catch
puis essayez, cela fonctionnera également dans l'émulateur.
Remarque: - Le service Google Messaging nécessite un service de palyservice. sinon, lancez l'erreur SERVICE_NOT_AVAILABLE
J'ai le même problème avec Android Studio lors de la construction d'un projet sans Gradle. Il peut y avoir un problème avec le nom du package dans AndroidManifest.xml dans le projet GooglePlayService. Il devrait être package = " com.google.Android.gms ".
Le problème apparaît lorsque j'ajoute un projet de bibliothèque sous la forme "Nouveau module" à la place "Module d'importation".
Lorsque vous choisissez Nouveau module, Android Studio affiche la boîte de dialogue pour spécifier "Nom du module" et "Nom du package" et par défaut "Nom du package" ressemble à "com.example.MODULE_NAME_YOU_SPECIFED" qui est - faux. Il est très facile de le manquer, car le projet se construit avec succès.
Lorsque vous ajoutez Library Project par "Import Module" tout devrait être OK, car Android Studio ajoutez simplement un projet sans apporter de modifications avec le code source de Library Project.