最近闲来无事,就想着把eclipse的android 开发环境升级下!
升级adt是采用下载adt到本地然后在用eclipse中的install升级,这下完了,升级完后就引来了一大推问题,显示sdk与adt版本兼容问题,网络上很多关于这方面的解决方案,我再整理下:
大致是两种:
1、先升级的adt,sdk不能使用,具体的会在你运行android程序时弹出提示框;如果是这样那只能升级sdk了,电脑能连网,那很好,电脑不能连网,那只能去能连网的下完拷贝过来了。
2、先升级的sdk,这种情况只要改改配置文件就行了
详情可百度:sdk与adt兼容
更新完后,发现android工程目录会有改变,这些刚开始没引起我太大的注意,但没想到后来竟让我花了一天的时间去搞定因为升级带来的系统维护的问题。NND,今天很让人抓狂啊!
废话不多说:异常打印出来的runtime error,大致是NoClassDeFoundError。百度了一堆都是再说环境变量没配好,很抓狂,后面换了搜索关键词大致是 no supper class of XXX这类的才搜索出原因,因为adt升级后17以上后android工程的目录框架发生了稍微的变化,你需要用的外部jar都必须放在根目录下的文件夹libs下。系统会自动在libs下搜索jar,这个甚至不需要你用传统的方法导入jar。很NX但是很不习惯。
欲哭无泪啊!本以为大功告成了,没想到运行程序后在android手机端调用javaMail发送邮件时报错了:Could not find class 'javax.activation.DataHandler'!这又让我彻底陷入了谜团中。百度谷歌了很多都没有解决,后面在stackoverflow找到 答案了。javaMail有对应的android的port,也就是说jar是不一样的,后来把jar换成从http://code.google.com/p/javamail-android/的additionnal.jar、mail.jar、activation.jar运行下程序就可以了 。真是郁闷,但总算是松了一口气,俗话说得好:没有解决不了的问题,只要有不死的心!