通过SVN导入两个项目(从java移植到andorid)时,一个android,一个普通java项目时可能遇到的两个问题

来源:互联网 发布:js获取当前页面大小 编辑:程序博客网 时间:2024/05/21 17:02

近导入了很多类似的项目,一个是普通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

便是出现在未添加另外一个项目的时候有可能出现

查了下国外的解答

http://stackoverflow.com/questions/2349244/android-could-not-find-method-xxx-referenced-from-method-yyy

国外的回答原文如下:

if you updates your adt to ADT 17

then  your library folder name could be the problem.it must belibs 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,这个不好说,保险而已)

原创粉丝点击