Android エラー java.lang.NoClassDefFoundError com.google.android.gms.R$string
次のようなエラーで、アプリが落ちてしまうということがありました。
一部の端末だけで、起こる現象です。
java.lang.NoClassDefFoundError: com.google.android.gms.R$string at com.google.android.gms.common.GooglePlayServicesUtil.c(Unknown Source) at com.google.android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source) at com.google.android.gms.common.GooglePlayServicesUtil.getErrorDialog(Unknown Source) at smart.location.admin.AbstractActivity.onCreate(AbstractActivity.java:135) at smart.location.admin.MenuActivity.onCreate(MenuActivity.java:71) at android.app.Activity.performCreate(Activity.java:5104) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2186) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2272) at android.app.ActivityThread.access$600(ActivityThread.java:171) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1276) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5216) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:565) at dalvik.system.NativeStart.main(Native Method)
google play serviceのライブラリも正しく読み込まれているのに、なぜ??
と思いきや、
「そういえば、最近 google play serviceでエラーが出てたので、ライブラリのパスをSDK内にあるライブラリに変更したんだっけ…」
と思い当たりました。
そう、公式ページにあるように
http://developer.android.com/google/play-services/setup.html#Setup
You should be referencing a copy of the library that you copied to your development workspace—you should not reference the library directly from the Android SDK directory.
SDKディレクトリの中にあるライブラリを直接参照してはいけないんですね(>_<) 自分のワークスペースなどに、コピペして移動させてから、参照すること!です。 コピペしたライブラリを読み込むようにしたら、治りました。 ちなみに、不具合のあった端末は 富士通ARROWS F-01F です。