最近导入了很多类似的项目,一个是普通java项目,一个是android项目,
第二个是将该项目简单移植到android所建立的.
导出方法及遇到的问题:
问题一:
首先,分别导出项目比如XXX和XXX-android
然后有时就会看到项目图标上有红色惊叹号(有错误时是红色叉)。
是缺少jar包的原因。
右键XXX-android项目并打开proprerties,打开java build path查看几个选项卡中的内容
在project选项卡中就可能会提示缺少文件,
而这里的文件有两种可能,一个是缺少完整java项目,一个是缺少jar包(我不是太清楚,只是发现这两种可能性)
如果是缺少完整java项目,并且名字与你刚才导入的项目有名称相同,那么添加进去即可。
如是缺少jar包,且导入的项目中没有就只能另外单独下(有可能在svn当中,注意它提示的名称)
以下问题
Android: Could not find method XXX, referenced from method YYY
便是出现在未添加另外一个项目的时候有可能出现
查了下国外的解答
国外的回答原文如下:
if you updates your adt to ADT 17
libs
if you have kept it lib please change it tolibs
and then check
I have a similar problem when using external jar(jar扩展包)
The reason I had a problem was due to a change in ADT 17 (or above).
What I needed to do to resolve the problem was
1. In Eclipse go to Properties -> Java build path -> Order and export.
2. Mark my jar.
3. Move jar to top of the list.
我解决的时候便是将项目添加进project选项卡,并在Order and export提上TOP并打钩(如果还不行,也有可能是两个项目都包含了该jar起冲突产生的,虽然我也是两个都包含了,但貌似没问题,删掉一个试试,并记得提上TOP并打钩)(啥?你说不用提上TOP,这个不好说,保险而已)
附上logcat里面的提示信息(很多看不懂,以前都没遇到过,VFY是啥。。)
E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.isAuthenticated
W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils;
D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010
D/dalvikvm(374): VFY: dead code 0x0012-002f in Lcom/ecs/android/sample/twitter/TwitterUtils;.isAuthenticated (Landroid/content/SharedPreferences;)Z
E/dalvikvm(374): Could not find class 'twitter4j.http.AccessToken', referenced from method com.ecs.android.sample.twitter.TwitterUtils.sendTweet
W/dalvikvm(374): VFY: unable to resolve new-instance 67 (Ltwitter4j/http/AccessToken;) in Lcom/ecs/android/sample/twitter/TwitterUtils;
D/dalvikvm(374): VFY: replacing opcode 0x22 at 0x0010
D/dalvikvm(374): VFY: dead code 0x0012-002b in Lcom/ecs/android/sample/twitter/TwitterUtils;.sendTweet (Landroid/content/SharedPreferences;Ljava/lang/String;)V
D/AndroidRuntime(374): Shutting down VM
W/dalvikvm(374): threadid=1: thread exiting with uncaught exception (group=0x40015560)
E/AndroidRuntime(374): FATAL EXCEPTION: main
E/AndroidRuntime(374): java.lang.NoClassDefFoundError: twitter4j.http.AccessToken
.....
....
问题二:
首先,分别导出项目比如XXX和XXX-android
但未出现上述问题,大红惊叹号或叉,
然而,编译运行后报错,
java.lang.NoClassDefFoundError:后面是新的jar包中的类名
这时往往是包含了jar包后没在Order and export提上TOP并打钩的原因(前提你已经导入了该jar包)
详细看一下问题一的解决步骤,打钩后问题解决。(啥?你说不用提上TOP,这个不好说,保险而已)