私はAndroid開発に少し慣れていないので、ご容赦ください。
私はすでにこのMapView を確認しました: メソッド B から参照されたクラス A が見つかりませんでした。メソッド YYY から参照されたメソッド XXX が見つかりませんでした
しかし、それらは私の問題を解決するのに役立ちません。
アプリを実行しようとすると、質問のタイトルにエラーが報告されます。私のアプリには、Github からプルした Java プロジェクトが必要です。このプロジェクト自体をコンパイルするには、いくつかの jar ファイルが必要でした。Java プロジェクトをコンパイルしましたが、Eclipse によって Android プロジェクトがコンパイルされたように見えますが、携帯電話では動作しません。
次のことを試しましたが、すべて同じ結果になりました。
- Javaビルドパスを使用してJavaライブラリを直接参照しました
- Javaビルドパスを使用してJavaライブラリを直接参照するAndroidプロジェクトライブラリを構築し、AndroidプロジェクトライブラリをプロジェクトのAndroidライブラリパスに追加しました
- Javaライブラリから構築したjarを参照するAndroidプロジェクトライブラリを構築し、AndroidプロジェクトライブラリをプロジェクトのAndroidライブラリパスに追加しました
- Javaライブラリからjarを構築し、そのjarをAndroidプロジェクトのビルドパスに追加しました
最終結果は常に同じです。私のプログラムはコンパイルされますが、実行しようとすると、「「私のメインアクティビティメソッド」から参照されているクラス「GitHub プロジェクトのクラス」が見つかりませんでした」と言ってクラッシュします。
誰でも骨を投げることができますか?
ログキャット
12-14 11:08:49.792: I/Process(5538): Sending signal. PID: 5538 SIG: 9
12-14 11:09:56.722: D/szipinf(5626): Initializing inflate state
12-14 11:09:56.732: E/dalvikvm(5626): Could not find class 'gmusic.api.impl.GoogleSkyJamAPI', referenced from method com.example.gpmx.MainActivity.runGoogleAPI
12-14 11:09:56.732: W/dalvikvm(5626): VFY: unable to resolve new-instance 445 (Lgmusic/api/impl/GoogleSkyJamAPI;) in Lcom/example/gpmx/MainActivity;
12-14 11:09:56.732: D/dalvikvm(5626): VFY: replacing opcode 0x22 at 0x0000
12-14 11:09:56.732: D/dalvikvm(5626): VFY: dead code 0x0002-0036 in Lcom/example/gpmx/MainActivity;.runGoogleAPI (Ljava/lang/String;Ljava/lang/String;)V
12-14 11:09:56.812: D/AndroidRuntime(5626): Shutting down VM
12-14 11:09:56.812: W/dalvikvm(5626): threadid=1: thread exiting with uncaught exception (group=0x40018560)
12-14 11:09:56.812: E/AndroidRuntime(5626): FATAL EXCEPTION: main
12-14 11:09:56.812: E/AndroidRuntime(5626): java.lang.NoClassDefFoundError: gmusic.api.impl.GoogleSkyJamAPI
12-14 11:09:56.812: E/AndroidRuntime(5626): at com.example.gpmx.MainActivity.runGoogleAPI(MainActivity.java:63)
12-14 11:09:56.812: E/AndroidRuntime(5626): at com.example.gpmx.MainActivity.onResume(MainActivity.java:36)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.Activity.performResume(Activity.java:3832)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2231)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2256)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1789)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread.access$1500(ActivityThread.java:123)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:939)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.os.Handler.dispatchMessage(Handler.java:99)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.os.Looper.loop(Looper.java:130)
12-14 11:09:56.812: E/AndroidRuntime(5626): at android.app.ActivityThread.main(ActivityThread.java:3835)
12-14 11:09:56.812: E/AndroidRuntime(5626): at java.lang.reflect.Method.invokeNative(Native Method)
12-14 11:09:56.812: E/AndroidRuntime(5626): at java.lang.reflect.Method.invoke(Method.java:507)
12-14 11:09:56.812: E/AndroidRuntime(5626): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
12-14 11:09:56.812: E/AndroidRuntime(5626): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
12-14 11:09:56.812: E/AndroidRuntime(5626): at dalvik.system.NativeStart.main(Native Method)
これが役立つ場合は、もう1つの情報。私が使用している Java プロジェクトは、Java プロジェクトの "lib" ("libs" ではない) フォルダーにあるさまざまな apache および google jar に依存しています。これは、jar を作成するときに問題になりますか?
最終更新: 教訓が得られたことが判明しました。少なくとも私の構成では、Android ライブラリに必要なすべての jar は、同じディレクトリ レベル、つまり「libs」のすぐ下にある必要がありました。「libs」の下の独自のディレクトリ内にあるapache common.io jarなど、必要なjarがいくつかありますが、これが問題を引き起こしていました。