Java.lang.noclassdeffounderror: com.google.android.gms.R $ style didn't help me

I have a class activity class:

package com.pavel.exchanger; import android.os.Bundle; import android.app.Activity; import android.support.v4.app.FragmentActivity; import android.view.Menu; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; import android.support.v4.app.Fragment; public class SearchExchangerActivity extends FragmentActivity { static final LatLng HAMBURG = new LatLng(53.558, 9.927); static final LatLng KIEL = new LatLng(53.551, 9.993); private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search_exchanger); map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG) .title("Hamburg")); Marker kiel = map.addMarker(new MarkerOptions() .position(KIEL) .title("Kiel") .snippet("Kiel is cool") .icon(BitmapDescriptorFactory .fromResource(R.drawable.ic_launcher))); // Move the camera instantly to hamburg with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15)); // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.search_exchanger, menu); return true; } } 

and such a layout:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SearchExchangerActivity" > <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/> </RelativeLayout> 

and such a manifest:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pavel.exchanger" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.pavel.exchanger.permission.MAPS_RECEIVE" /> <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" /> <permission android:name="com.pavel.exchanger.permission.MAPS_RECEIVE" android:protectionLevel="signature" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.pavel.exchanger.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> <activity android:name="com.pavel.exchanger.ExchangerListActivity" android:label="@string/title_activity_exchanger_list" > </activity> <activity android:name="com.pavel.exchanger.BankExchangersListActivity" android:label="@string/title_activity_bank_exchangers_list" > </activity> <activity android:name="com.pavel.exchanger.NbrbActivity" android:label="@string/title_activity_nbrb" > </activity> <meta-data android:name="com.google.android.maps.v2.***" android:value="****" /> <activity android:name="com.pavel.exchanger.SearchExchangerActivity" android:label="@string/title_activity_search_exchanger" > </activity> </application> </manifest> 

but when I start my activity, I get:

 04-30 17:25:35.926: E/AndroidRuntime(400): FATAL EXCEPTION: main 04-30 17:25:35.926: E/AndroidRuntime(400): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable 04-30 17:25:35.926: E/AndroidRuntime(400): at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source) 04-30 17:25:35.926: E/AndroidRuntime(400): at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:279) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 04-30 17:25:35.926: E/AndroidRuntime(400): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.Activity.setContentView(Activity.java:1657) 04-30 17:25:35.926: E/AndroidRuntime(400): at com.pavel.exchanger.SearchExchangerActivity.onCreate(SearchExchangerActivity.java:26) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.os.Handler.dispatchMessage(Handler.java:99) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.os.Looper.loop(Looper.java:123) 04-30 17:25:35.926: E/AndroidRuntime(400): at android.app.ActivityThread.main(ActivityThread.java:3683) 04-30 17:25:35.926: E/AndroidRuntime(400): at java.lang.reflect.Method.invokeNative(Native Method) 04-30 17:25:35.926: E/AndroidRuntime(400): at java.lang.reflect.Method.invoke(Method.java:507) 04-30 17:25:35.926: E/AndroidRuntime(400): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 04-30 17:25:35.926: E/AndroidRuntime(400): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 04-30 17:25:35.926: E/AndroidRuntime(400): at dalvik.system.NativeStart.main(Native Method) 

I am trying to clean up the project, I added lib and the project, I am trying to do google and do some advice .... but nothing helped me (

What am I doing wrong?

Note: I have to run it on Android 2.3.3 ...

How to solve this error?

+4
source share
1 answer

If I had to guess when you added the lib and the project, you added the JAR, not the Android library project. The Play Services SDK is an Android library project that contains a JAR.

The Play Services SDK documentation contains basic steps. Assuming you are using Eclipse, you need to import the Android SDK Play Services library project into the workspace, and then reference this library project from your application (Project> Properties> Android). Also, undo everything you did initially to try to use the Play Services SDK, as this may interfere with the revised setup.

+19
source

All Articles