6

TestAndroid という名前の Android プロジェクトがあります。Androidデバイスで問題なく実行できます。ただし、別のプロジェクトのコードを使用できるようにしたいと考えています。そこで、ビルド パスに移動し、プロジェクト Test を追加します。Test は、java6 を使用した標準的な Java プロジェクトです。Test プロジェクトには、単なる空のクラスである Test クラスがあります。

ただし、TestAndroid で Test のインスタンスを作成すると、実行時エラーが発生します。logcat から取得したエラーは次のとおりです。

05-27 21:47:49.976: E/dalvikvm(27493): Could not find class 'com.tests.eclipseisbroken.Test', referenced from method com.tests.eclipseisbroken.TestAndrodiActivity.onCreate
05-27 21:47:49.986: W/dalvikvm(27493): VFY: unable to resolve new-instance 11 (Lcom/tests/eclipseisbroken/Test;) in Lcom/tests/eclipseisbroken/TestAndrodiActivity;
05-27 21:47:49.986: D/dalvikvm(27493): VFY: replacing opcode 0x22 at 0x0008
05-27 21:47:49.986: D/dalvikvm(27493): VFY: dead code 0x000a-000d in Lcom/tests/eclipseisbroken/TestAndrodiActivity;.onCreate (Landroid/os/Bundle;)V
05-27 21:47:50.026: D/AndroidRuntime(27493): Shutting down VM
05-27 21:47:50.046: W/dalvikvm(27493): threadid=1: thread exiting with uncaught exception (group=0x40028a00)
05-27 21:47:50.056: E/AndroidRuntime(27493): FATAL EXCEPTION: main
05-27 21:47:50.056: E/AndroidRuntime(27493): java.lang.NoClassDefFoundError: com.tests.eclipseisbroken.Test
05-27 21:47:50.056: E/AndroidRuntime(27493):    at com.tests.eclipseisbroken.TestAndrodiActivity.onCreate(TestAndrodiActivity.java:16)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1065)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2745)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.ActivityThread.access$2300(ActivityThread.java:135)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.os.Looper.loop(Looper.java:143)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at android.app.ActivityThread.main(ActivityThread.java:4914)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at java.lang.reflect.Method.invokeNative(Native Method)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at java.lang.reflect.Method.invoke(Method.java:521)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-27 21:47:50.056: E/AndroidRuntime(27493):    at dalvik.system.NativeStart.main(Native Method)

別のプロジェクトを参照しなければならなかったプロジェクトがあり、それが機能したため、Eclipseのインストールに何か問題があるに違いないと思います。Eclipseとすべてのプラグインを完全に再インストールして、今すぐ修正したいと思います。誰かが何が悪いのかを知っていて、私を助けることができれば、私はそれを大いに感謝します. ありがとう!!

4

1 に答える 1

9

最新の Android SDK と ADT バージョンを使用していて、標準の Java プロジェクトBを Android プロジェクトAの依存関係として追加するとします。

  1. プロジェクト B をプロジェクト A のビルド パスに追加します。Properties -> Java Build Path -> Projects -> Add ...
  2. プロジェクト A のビルド パス エクスポート リストでプロジェクト B にチェックを入れます。Properties -> Java Build Path -> Order and Export

これで、Android プロジェクトで標準 Java ライブラリのクラスを使用し、Eclipse でビルド/実行/デバッグできるようになります。

お役に立てれば。

更新:上記の操作は、1行追加するだけです.classpath

<classpathentry combineaccessrules="false" exported="true" kind="src" path="/projB"/>
于 2012-05-28T03:16:56.007 に答える