Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NoClassDefFoundError at Google Play Services V2 library

I get the following exception when trying to use the Google Play Services V2 library after following the official tutorial.

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) 

Where did I go wrong?

like image 378
keyboardsurfer Avatar asked Dec 03 '12 20:12

keyboardsurfer


1 Answers

I also have the same issues once ,I followed the step properly and able to solve this issue

First (Set up your project from Google Developer console) Go to API Console - Google Code

Create A project As shown in the images enter image description here

Click Create then you will Ask to add a project name as shown

enter image description here

once you create your project its time to select what service we need to use,In this case we need android v2 map so select the Google Maps Android API v2 from Service As shown, enter image description here

Now go to Api Access and create your OAuth 2.0 .By provide your package name and SHA1 fingerprint in the corresponding fields. enter image description here

once you finish with OAuth 2.0 we are ready to use your API Key enter image description here

Now Create An Android project with the same package name used while creating the OAuth 2.0. and Check whether you have the google play service in Android SDK Manager otherwise install google play service. enter image description here

After installing Google playservice you will find a Google play library in Your Android YourSdkpath\extras\google\google_play_services.Import that project to your workspace and give it as the refrence library to your project enter image description here

enter image description here

enter image description here

After that put the corresponding java and xml files to your project.

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"/> 

Hope it will help you

like image 59
Ramz Avatar answered Sep 23 '22 18:09

Ramz