我对Android开发有点新意,所以请耐心等待。
我已经审核过此MapView: Could not find class A referenced from method B和此Could not find method XXX, referenced from method YYY
但他们没有帮助解决我的问题。
在尝试运行我的应用时,我收到了问题标题中报告的错误。我的应用程序需要一个我从Github中提取的java项目,它本身需要一些jar文件才能自行编译。我编译了java项目,Eclipse使我的android项目看起来被编译,但它在我的手机上无法正常工作。
我尝试了以下内容,所有结果都相同:
最终结果总是一样的,我的程序编译但是当我尝试运行时崩溃说GitHub项目中的“找不到类”类“引自”我的主要活动方法“
有人可以扔骨头吗?
logcat的
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)
如果这有帮助,还有一条信息。我正在使用的java项目依赖于各种apache和google jar,它们位于java项目“lib”(不是“libs”)文件夹中。创建jar时这是一个问题吗?
最终更新 事实证明,有一个教训。至少在我的配置中,我在android库中需要的所有jar都必须在同一目录级别,即在“libs”下。我有几个必需的jar,比如apache common.io jar在它自己的“libs”目录下,这导致了一个问题。
答案 0 :(得分:3)
请参阅this SO post以正确将现有项目导入Eclipse ...
最有用的帖子似乎是:
要将其添加为其他项目的库,请参阅Android开发者网站的this link。
答案 1 :(得分:0)
将OSMDroid导入我的应用后,我遇到了同样的问题。我检查了LogCat输出,这表明Dex加载器在OSMDroid中找不到特定的类(GeoPoint)。我意识到bin文件夹中没有类文件,即它尚未编译。原因是我的导入已将源放入名为“org”的库中,而不是放入“src”中。将它移动到“src”并重建OSMDroid会在“bin”中生成正确的Class文件,现在一切正常。