一、一切由运行时错误引起
dalvikvm Could not find class ‘引用包.类‘, referenced from method...
其实在编译时也会见到如下错误:
[dx]
[dx] trouble processing:
[dx] bad class file magic (cafebabe) or version (0033.0000)
[dx] ...while parsing com/novell/sasl/client/DigestChallenge.class
[dx] ...while processing com/novell/sasl/client/DigestChallenge.class
二、尝试
1.使用JDK7
有推荐使用JDK7来解决类似问题的帖子,可是我照做并没有解决问题。
2.升级build-tools
先来说说我的开发环境吧。
那是在2013年末配置的环境,ADT大版本号是22,tools大版本号也是22,Plantform-tools已经是最新的21,build-tools是18.1.1。
经过同事的实践,问题应该归咎于build-tools版本低的缘故。
三、最新开发环境的搭建(Eclipse & ADT&SDK)
1.各tools的升级
这里我们要重新配置一下代理,去neusoft.edu.cn镜像网站中下载最新的工具和SDK。
启动 Android SDK Manager(命令行中直接输入android),Tools--->Options...,弹出Android SDK Manager - Settings窗口;在HTTP Proxy Server和HTTP Proxy Port输入框内填入mirror.neusoft.edu.cn(注意没有http等前缀)和80,并且选中Force https://... sources to be fetched using http://...复选框。 再选择Packages--->Reload。
此时会发现我们顺利的取到Packages了,那么我们尽情下载吧。除了最新的Android 5.0.1还没有提供,其他的一应俱全了。
tools更新到最新是24.0.2,
build-tools我选择了19.1、20和21.1.2,分别对应API19(4.4.2)、API20(L)和API21(5.0).
Android 5.0全部选择。
2.ADT的升级
由于更tools升级到最新,那么ADT22已经过期了,需要使用23及以上版本的ADT。找到好心人上传的23.03,安装时发现eclipse版本不支持最新的ADT(我使用的Juno),好吧,既然这样就都来新的吧。
3.eclipse luna
最新的版本是luna,还是130多兆。解压后直接启动。
4.再次安装ADT
这时在Help--->Install New Software --->Add, 选择ADT23.03 ZIP包,将“Contact all update sites during install to find required software.”勾选掉。
继续完成安装。
一切准备就绪,将之前有问题的项目引入进来,编译,出现内存方面的问题。
四、dex的问题
出现了两个问题:
1.unable to execute dex:java heap space
2.Conversion to Dalvik format failed: Unable to execute dex: GC overhead limit exceeded
配置eclipse.ini,将Xms40m和Xmx512m修改成126m和1024m,这个值要根据自己机器配置调整,只要运行良好就ok。
$ cat eclipse.ini -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140603-1326 -product org.eclipse.epp.package.java.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms126m -Xmx1028m
重启、clean项目,编译,通过!运行,正常!至此我的最新Android开发环境搭建完成。
五、结论
时刻保持与时俱进的心态,稳定的新工具对我们的工作益处多多。