46 votes

NoClassDefFoundError dans la bibliothèque de Google Play Services V2

L'exception suivante s'affiche lorsque j'essaie d'utiliser la bibliothèque Google Play Services V2 après avoir suivi le didacticiel 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ù me suis-je trompé?

34voto

Ramz Points 1575

J'ai aussi les mêmes problèmes une fois ,j'ai suivi l'étape correctement et en mesure de résoudre ce problème

La première (mettre en place votre projet de Google Developer console) Aller à l' API Console - Google Code

Créer Un projet Comme le montrent les images enter image description here

Cliquez sur Créer, puis vous demandera d'ajouter un nom de projet, comme indiqué

enter image description here

une fois que vous créez votre projet de son temps pour choisir ce service, nous avons besoin d'utiliser,Dans ce cas, nous avons besoin de android v2 carte afin de sélectionner la Google Maps API Android v2 de Service Comme indiqué, enter image description here

Maintenant, allez à l'Accès à l'Api et de créer votre OAuth 2.0 .Par fournir votre nom de package et de l'empreinte SHA1 dans les champs correspondants. enter image description here

une fois que vous avez terminé avec OAuth 2.0, nous sommes prêt à utiliser votre Clé API enter image description here

Maintenant Créer Un projet Android avec le même nom de paquet utilisé lors de la création du protocole OAuth 2.0. et de Vérifier si vous avez le google play service dans Android SDK Manager autrement installer google play service. enter image description here

Après l'installation de Google playservice, vous trouverez un Google play bibliothèque dans Votre Android *YourSdkpath\extras\google\google_play_services*.Importer ce projet à votre espace de travail et de lui donner la refrence de la bibliothèque de votre projet enter image description here

enter image description here

enter image description here

Après cela, mettre le correspondant de java et xml fichiers à 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"/>

Espérons, vous aidera à

32voto

jham Points 306

La version 2 inclut des ressources et doit être importée en tant que projet de bibliothèque. Consultez les instructions à l' adresse http://developer.android.com/google/play-services/setup.html pour savoir comment procéder dans différentes IDE.

Les ressources sont destinées à GooglePlayServicesUtil.getErrorDialog (), qui indique à l'utilisateur d'installer, de mettre à jour, d'activer, etc. Les services Google Play, s'ils ne sont pas disponibles sur l'appareil.

11voto

Denis Dolgikh Points 101

Pour Android Studio:

1) Ouvrir les paramètres du module:

2) Ajouter (importer) le module google_play_service_lib à partir du SDK

Image

3) Module google_play_service_lib vérifier en tant que bibliothèque

4) Ajouter la bibliothèque google_play_service.jar à partir du SDK

5) Terminer

Image

2voto

Damian Points 43

Si vous avez déjà mis à niveau SDK et d'obtenir une telle erreur n'oubliez pas de:

  • l'utilisation de la nouvelle version de google-play-services.jar si vous avez copiez ce fichier dans votre projet eclipse
  • set target=android-19 en projet.propriétés
  • pour les nouvelles API (j'utilise l'API 19) vous devrez peut-être ajouter le code suivant

AndroidManifest.xml

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

J'utilise aussi ourSdkpath\extras\google\google_play_services comme Eclipse bibliothèque importées comme décrit ci-dessus.

1voto

UmbySlipKnot Points 718

J'ai résolu cette erreur en cochant l'option "Copier les projets dans l'espace de travail" lors de l'importation de la lib. De Google Play Services.
Plus d'informations ici: http://developer.android.com/google/play-services/setup.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X