通过SVN导入两个项目(从java移植到andorid)时,一个android,一个普通java项目时可能遇到的两个问题
最近导入了很多类似的项目,一个是普通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,这个不好说,保险而已)
更多相关文章
- 从智行Android(安卓)项目看组件化架构实践-携程技术中心
- Android(安卓)二维码的扫码功能实现(一)
- 基于Android移动终端的搜索客户端应用【团队项目】
- 2020年开春最新面试!今日头条 Android(安卓)面试题及答案 (已拿到
- 总结了近百个Android优秀开源项目,覆盖Android开发的每个角落。
- Android线程池的原理以及项目中实践
- BAT的android应用会用到的第三方框架
- [置顶] Android之路——第一个上线 APP项目总结
- 新建Android工程并引用其他工程当做类库 报错解决方法