2012-05-24 50 views
0

我已经尝试了2个小时,现在我似乎没有得到它的工作。我想在另一个项目中为我的应用程序构建一个框架。首先,我只是试图从其他项目中获得一个课程。代码编译但在运行时失败,在我从框架的类实例化对象的行。从一个Android项目引用到另一个Eclipse

05-24 18:04:01.645: E/dalvikvm(16927): Could not find class 'frame.test.Hello', referenced from method moduleLogin.activity.Login.loginClick 
05-24 18:04:01.645: W/dalvikvm(16927): VFY: unable to resolve new-instance 190 (Lframe/test/Hello;) in LmoduleLogin/activity/Login; 
05-24 18:04:02.715: W/dalvikvm(16927): threadid=1: thread exiting with uncaught exception (group=0x4001e578) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.view.View$1.onClick(View.java:2154) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.view.View.performClick(View.java:2538) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.view.View$PerformClick.run(View.java:9152) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.os.Handler.handleCallback(Handler.java:587) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.os.Looper.loop(Looper.java:130) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.app.ActivityThread.main(ActivityThread.java:3691) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at java.lang.reflect.Method.invokeNative(Native Method) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at java.lang.reflect.Method.invoke(Method.java:507) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at dalvik.system.NativeStart.main(Native Method) 
05-24 18:04:02.720: E/AndroidRuntime(16927): Caused by: java.lang.reflect.InvocationTargetException 
05-24 18:04:02.720: E/AndroidRuntime(16927): at java.lang.reflect.Method.invokeNative(Native Method) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at java.lang.reflect.Method.invoke(Method.java:507) 
05-24 18:04:02.720: E/AndroidRuntime(16927): at android.view.View$1.onClick(View.java:2149) 
05-24 18:04:02.720: E/AndroidRuntime(16927): ... 11 more 
05-24 18:04:02.720: E/AndroidRuntime(16927): Caused by: java.lang.NoClassDefFoundError: frame.test.Hello 
05-24 18:04:02.720: E/AndroidRuntime(16927): at moduleLogin.activity.Login.loginClick(Login.java:49) 
05-24 18:04:02.720: E/AndroidRuntime(16927): ... 14 more 

我知道这个话题有很多,但我已经搜索了几个小时没有任何文章解决这个问题。大部分主题是如何参考另一个项目。但是因为我的代码正在编译它应该被引用?

而且两个项目都需要成为Android项目吗?框架项目应该成为图书馆吗?谢谢你的帮助!

回答

1

如果库项目是一个Android项目,你需要从project properties选择它,然后通过same place但使用它的项目中引用它,使之成为一个库。 不要忘记,当你使用一个库项目时,有一些规则。请参阅我的帖子here了解更多信息。

如果库项目是java,就像使用其他java项目一样。

+0

我试过这种方法,但在图片上,当按下添加没有替代品时出现.. –

+0

您需要先将其他项目设置为android库,并确保两个项目位于同一工作区当然,他们都是Android项目)。尝试也做项目 - >干净,重建所有的项目。 –

+0

我的框架现在是一个库,它迄今为止效果很好!我从你之前的文章中读到了从图书馆扩展课程时做些特别的事情?为什么需要?编译其中一个项目时,是否有办法编译这两个项目? :) 谢谢你的帮助! –

1

这是一个长镜头,但它的工作对我来说(有也对这个花了几个小时,看完所有你做了同样的帖子后...)

如果你有信心,你已经正确配置项目引用,这可能是一个沉默的构建失败的结果。

在我的情况下,问题是由于我的两个项目的构建环境之间不兼容导致的。在项目“A”,这是纯粹的Java,以下行没有错误在A项目的构建环境编译:

if ((int) d.get("good")) == 0) {.... 

事实证明,这是不是在(安卓)项目“B”的法律,这需要对象投:

if ((Integer) d.get("good")) == 0) {.... 

但是,我得到了错误的唯一迹象是一样的,你经历了什么,一个“VFY:无法解析...”错误。

我以痛苦的方式发现了错误:通过将项目“A”中的代码复制到项目“B”中,找到错误并将它们修复到项目“A”中。有可能比我更聪明的方式来找到这种不兼容性,比如通过调整两个项目中的设置来完全匹配。

相关问题