3

ビルド パスに必要な Java プロジェクトを含む Android アプリケーションがあります。ただし、「lib」フォルダーの構成が誤っている場合と同様に、実行時に NoClassDefFoundError がスローされます。

ランタイム エラーを発生させずに、このプロジェクトをビルド パスに含める方法はありますか?

外部 jar として使用できることはわかっていますが、アプリケーションのビルド パス上の別のプロジェクトにすることを強くお勧めします。このようにして、jar に少し変更を加えるたびに jar を再コンパイルする手間を省くことができます。

これが私が得ている正確なlogcatメッセージです:

11-09 20:06:00.871: E/AndroidRuntime(1699): FATAL EXCEPTION: main
11-09 20:06:00.871: E/AndroidRuntime(1699): java.lang.NoClassDefFoundError: reproducers.SelectionReproducer
11-09 20:06:00.871: E/AndroidRuntime(1699):     at com.gamma.MainActivity.onCreate(MainActivity.java:37)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.Activity.performCreate(Activity.java:5008)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.os.Looper.loop(Looper.java:137)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at android.app.ActivityThread.main(ActivityThread.java:4745)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at java.lang.reflect.Method.invokeNative(Native Method)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at java.lang.reflect.Method.invoke(Method.java:511)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-09 20:06:00.871: E/AndroidRuntime(1699):     at dalvik.system.NativeStart.main(Native Method)

これを入力しているときに答えを発見しましたが、私のような初心者にはあまり明白ではありませんでした。それで、私はまだ質問をして、解決策も投稿します。お役に立てれば!

4

1 に答える 1

3

解決策は、必要なプロジェクトを「エクスポート」として構成することでした。これは、次のように Eclipse で実行できます。

  1. 依存プロジェクト (他のプロジェクトを含めるプロジェクト) を右クリックします。
  2. [プロパティ] -> [Java ビルド パス] に移動します。
  3. [Projects] タブで、必要なプロジェクトが追加されていることを確認します。
  4. [注文とエクスポート] タブで、必要なプロジェクトの横にあるチェックボックスをオンにします。
  5. これで完了です。

ステップ 4 では、プロジェクトが「エクスポート」されているとマークされます。これは、このプロジェクトを必要とするプロジェクトに表示されることを意味し、何らかの理由で、これは ADT を喜ばせます。

余談ですが、私のバージョンの Eclipse (Helios) では、チェックボックスの機能が表示されません。公式の Eclipse ドキュメントで調べる必要がありました。

于 2012-11-10T03:28:46.637 に答える