Android项目无法在eclipse中引用其他项目

时间:2012-05-28 02:51:29

标签: java android eclipse

有一个名为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和我的所有插件。如果有人知道什么是错的,可以帮助我,我会非常感激。谢谢!!

1 个答案:

答案 0 :(得分:9)

假设您使用最新的Android SDK& ADT版本,你想在android项目中添加一个标准的java项目 B 作为依赖项 A

  1. 将项目B添加到项目A的构建路径:Properties -> Java Build Path -> Projects -> Add ...
  2. 在项目A的构建路径导出列表中勾选项目B:Properties -> Java Build Path -> Order and Export
  3. 现在你应该能够在Android项目中使用标准java库中的类,并在Eclipse中构建/运行/调试它。

    希望这有帮助。

    更新:上述操作只需在.classpath

    中添加一行
    <classpathentry combineaccessrules="false" exported="true" kind="src" path="/projB"/>