在Android应用程序项目中的adt 20中添加外部jar

时间:2012-07-06 05:18:46

标签: java android jar adt

07-06 10:32:07.244: E/dalvikvm(319): Could not find class 'org.AstroVed.Panchanga.Moment', referenced from method com.astroved.horawatch.HoraWatchActivity.onCreate
07-06 10:32:07.244: W/dalvikvm(319): VFY: unable to resolve new-instance 186 (Lorg/AstroVed/Panchanga/Moment;) in Lcom/astroved/horawatch/HoraWatchActivity;
07-06 10:32:07.254: D/dalvikvm(319): VFY: replacing opcode 0x22 at 0x000f
07-06 10:32:07.254: D/dalvikvm(319): VFY: dead code 0x0011-00f6 in Lcom/astroved/horawatch/HoraWatchActivity;.onCreate (Landroid/os/Bundle;)V
07-06 10:32:08.224: D/dalvikvm(319): GC_CONCURRENT freed 692K, 49% free 3439K/6727K, external 2022K/2137K, paused 4ms+4ms
07-06 10:32:08.953: D/AndroidRuntime(319): Shutting down VM
07-06 10:32:08.953: W/dalvikvm(319): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-06 10:32:08.963: E/AndroidRuntime(319): FATAL EXCEPTION: main
07-06 10:32:08.963: E/AndroidRuntime(319): java.lang.NoClassDefFoundError: org.AstroVed.Panchanga.Moment
07-06 10:32:08.963: E/AndroidRuntime(319):  at com.astroved.horawatch.HoraWatchActivity.onCreate(HoraWatchActivity.java:71)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.os.Looper.loop(Looper.java:123)
07-06 10:32:08.963: E/AndroidRuntime(319):  at android.app.ActivityThread.main(ActivityThread.java:3683)
07-06 10:32:08.963: E/AndroidRuntime(319):  at java.lang.reflect.Method.invokeNative(Native Method)
07-06 10:32:08.963: E/AndroidRuntime(319):  at java.lang.reflect.Method.invoke(Method.java:507)
07-06 10:32:08.963: E/AndroidRuntime(319):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-06 10:32:08.963: E/AndroidRuntime(319):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-06 10:32:08.963: E/AndroidRuntime(319):  at dalvik.system.NativeStart.main(Native Method)

这是我在adt 20中的应用程序中出现的错误.....如果我正在使用外部jar。

3 个答案:

答案 0 :(得分:1)

您遇到此错误的原因只有几个:

  1. 这堂课真的不存在。如果您使用的是官方示例中的代码并获得此代码,请确保您拥有该库的最新版本
  2. 您尚未将jar添加到构建路径中。要解决此问题,请右键单击Eclipse中的jar,然后执行BuildPath►Addto Build Path。
  3. 您的jar不在/ libs文件夹中。将jar添加到构建路径时会发生这种情况,但较新版本的ADT需要将它放在/ libs中。把它放在那里并重新添加到构建路径。
  4. 您的JAR文件必须与Android兼容(不支持实际的Java 7编译类!)。

答案 1 :(得分:1)

请务必将所有外部广告加入您的应用libs。创建 libs 文件夹,其中 AndroidManifest.xml 存在。然后在eclipse中刷新你的项目。 然后执行以下操作:

  1. 在Eclipse中右键单击您的项目
  2. 点击属性。
  3. 在属性窗口中单击JavaBuildPath
  4. 选择“库”选项卡
  5. 点击AddJARs按钮&从项目的lib
  6. 添加外部jar

答案 2 :(得分:1)

this thread。他们似乎在描述一个与你非常相似的问题。也许你的清单中缺少一些你试图开始的活动的许可?