サンプルコード of Android 'Google Maps Android API v2'が動作しています。プロジェクトをビルドします。ただし、Galaxy Nexus(USBでラップトップに接続)でアプリを実行しようとすると、アプリがすぐにクラッシュします。
これはロギングです:
Unable to resolve superclass of Lcom/example/mapdemo/BasicMapActivity; (66)
Link of class 'Lcom/example/mapdemo/BasicMapActivity;' failed
Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity.<clinit>
VFY: unable to resolve const-class 108 (Lcom/example/mapdemo/BasicMapActivity;) in Lcom/example/mapdemo/MainActivity;
VFY: replacing opcode 0x1c at 0x000d
Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/example/mapdemo/MainActivity;
Class init failed in newInstance call (Lcom/example/mapdemo/MainActivity;)
Shutting down VM
threadid=1: thread exiting with uncaught exception (group=0x41ac9930)
FATAL EXCEPTION: main
Java.lang.ExceptionInInitializerError
at Java.lang.Class.newInstanceImpl(Native Method)
at Java.lang.Class.newInstance(Class.Java:1319)
at Android.app.Instrumentation.newActivity(Instrumentation.Java:1054)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2097)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2230)
at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:137)
at Android.app.ActivityThread.main(ActivityThread.Java:5039)
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:793)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: Java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity
at com.example.mapdemo.MainActivity.<clinit>(MainActivity.Java:97)
... 15 more
誰がこれを解決する方法や私が間違っているかもしれないことのヒントを持っていますか?
ベビーベッドシートを非常に注意深く従ってください。
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw
特に、私はあなたがする必要があると思う:
サンプルコードを使用するときに、まったく同じエラーが発生したため、この2番目の手順が必要であることがわかりました。実際のプロジェクトでcom.google.Android.gms.R$styleable
のNoClassDefFoundError
を回避するには、最初のステップが必要でした。
また、サンプルコードが機能する前に、クリーンビルドを実行し、デバイスからアプリをアンインストールする必要がありました(以前のテスト試行から)。
次のサンプルコードの手順 に従ってください。
「4」セクションをスキップし、以下の指示に従います。
Google-play-services.jarフォームをコピーします。
「Android-sdk-folder\extras\google\google_play_services\libproject\google-play-services_lib\libs」
「libs」フォルダーへ->このフォルダー内のこのjarを右クリック->ビルドパス->ビルドパスに追加。
Android-support-v4.jarフォームをコピーします。
「Android-sdk-folder\extras\Android\support\v4」
「libs」フォルダーへ->このフォルダー内のこのjarを右クリック->ビルドパス->ビルドパスに追加。
「Android-sdk-folder」は通常、「C:\ Users\User_Name\Android-sdks」のようになります
私は同じ問題を抱えていました。問題を解決するために次のことをしました。
リストの順序は、最初に「src」、次に「gen」パスでした。これらを切り替えると、「gen」フォルダーが「src」の前にビルドされます
次に、リストされた各項目を「チェック」します
これは、プロジェクトのインポート方法に関する多くの混乱のために発生します。ドキュメント https://developers.google.com/maps/documentation/Android/intro#sample_code どの時点でも「プロジェクトをワークスペースにコピー」を選択しないでください。サンプルを実行するには、あなたが固執する必要があるもの。プレイサービスとサンプルにはこのオプションを選択しないでください。そのままにしておきます。
両方をインポートしたら、次を確認します。
新しいワークスペースで同じサンプルコードを試してください。
サンプルマッププロジェクトとgoogle play services-libプロジェクト(/ extras/google/google_play_services/libproject/google-play-services_lib)をコピーして貼り付け、新しい新しいワークスペースに貼り付けることもできます。
私は同じ問題に直面し、解決できませんでした。最後に、別のマシンからサンプルプロジェクトフォルダを取得し、それを自分のマシンにコピーして、別のマシンから取得した新しいプロジェクトをロードしました。その後、すべてが正常に動作しています。 2つのサンプルプロジェクトを比較して問題を追跡しようとしましたが、できませんでした。とにかく、他のマシンから取得した新しいサンプルプロジェクトは正常に動作しています。
私はほとんど同じ問題を抱えていました。ファイル 'import-summary.txt'には答えがありました。私の場合、パス名にスペースを含むパスにEclipseプロジェクトをインポートしました。これにより、ウィザードで問題が発生します。新しいパスを作成しました。再インポートされたプロジェクト。次に、プロジェクトをビルド/再ビルドします。問題はありません。