android的 adt 升级18后,使用三方jar包,报错:NoClassDefFound或VerifyError
2012-06-21 14:12
465 查看
前几日导入了别人发来的一个工程,运行到某个类调用的时候,总报错:java.lang.VerifyError: com.***
经过几日网上的磨战,总算找到了解决方法。
参考1:
http://zoulu1.blog.163.com/blog/static/46733149201231910577936/
经过分析 是插件adt使用aapt工具打包生成 apk文件的时候 没有把三方的类库打包的apk里面 。
在adt17 的版本之前 使用建立一个目录叫 lib 然后把jar包添加到环境变量
在adt17之后, 只需要建立一个叫libs的目录 ,把jar包放到目录里面就行了,adt会自动管理jar包的依赖,自动添加到环境变量.
adt会自动导入libs下的包。不需要再手动导入。问题完美解决
参考2:
http://blog.csdn.net/iamkila/article/details/7455423
解决方法一:
1, 在项目上单击右键,Properties---Java Build path----Libraries---remove掉之前添加的所有外部jar包,只留下两个自带的:Android x.x.x 和Android Dependencies。点击ok。第一步完成。
如图:
变化:如果你已经移出了所有的外部jar包,Referenced Libraies文件夹消失。
2,复制所要使用的jar包到此工程下的libs文件夹。如果项目中没有libs文件夹,手动新建:项目上单击右键,新建一个文件夹,命名为libs(注意必须命名为libs,否则会报错)
变化:Android Dependencies文件夹里自动出现了你要使用的所有jar包。
运行ok。
注:如果之前就有lib包存放jar包,只需要按照步骤1,然后修改文件夹lib为libs即可。
解决方法二:
如果不建立libs文件,只是单纯的通过Add External JARs导入jar包,见下图
那么可以很轻松的解决这个问题。
点击Order and Export,选中你要使用的jar包,例如jsoup,点击ok。运行即可。
原因:外部引入的jar包,虽然已经存在于项目中,但是实际的位置仍然在其他位置,如上图所示(我的项目在c盘,jar包在f盘)。以上两种方法都将jar包放入项目中。运行的时候,将jar包加入apk中。成功运行后,你可以观察下,apk是否比之前大了一些。
Plus:
如果执行上面两种方法之后,仍然有requires unavailable shared library的错误log提示,请打开AndroidManifest.xml文件。删除其中的<uses-library />配置。即可。
End
经过几日网上的磨战,总算找到了解决方法。
参考1:
http://zoulu1.blog.163.com/blog/static/46733149201231910577936/
经过分析 是插件adt使用aapt工具打包生成 apk文件的时候 没有把三方的类库打包的apk里面 。
在adt17 的版本之前 使用建立一个目录叫 lib 然后把jar包添加到环境变量
在adt17之后, 只需要建立一个叫libs的目录 ,把jar包放到目录里面就行了,adt会自动管理jar包的依赖,自动添加到环境变量.
adt会自动导入libs下的包。不需要再手动导入。问题完美解决
参考2:
http://blog.csdn.net/iamkila/article/details/7455423
解决方法一:
1, 在项目上单击右键,Properties---Java Build path----Libraries---remove掉之前添加的所有外部jar包,只留下两个自带的:Android x.x.x 和Android Dependencies。点击ok。第一步完成。
如图:
变化:如果你已经移出了所有的外部jar包,Referenced Libraies文件夹消失。
2,复制所要使用的jar包到此工程下的libs文件夹。如果项目中没有libs文件夹,手动新建:项目上单击右键,新建一个文件夹,命名为libs(注意必须命名为libs,否则会报错)
变化:Android Dependencies文件夹里自动出现了你要使用的所有jar包。
运行ok。
注:如果之前就有lib包存放jar包,只需要按照步骤1,然后修改文件夹lib为libs即可。
解决方法二:
如果不建立libs文件,只是单纯的通过Add External JARs导入jar包,见下图
那么可以很轻松的解决这个问题。
点击Order and Export,选中你要使用的jar包,例如jsoup,点击ok。运行即可。
原因:外部引入的jar包,虽然已经存在于项目中,但是实际的位置仍然在其他位置,如上图所示(我的项目在c盘,jar包在f盘)。以上两种方法都将jar包放入项目中。运行的时候,将jar包加入apk中。成功运行后,你可以观察下,apk是否比之前大了一些。
Plus:
如果执行上面两种方法之后,仍然有requires unavailable shared library的错误log提示,请打开AndroidManifest.xml文件。删除其中的<uses-library />配置。即可。
End
相关文章推荐
- 【Android】ADT-16升级至18出现的问题
- android 升级ADT22版本后,使用第三方类库项目报错:java.lang.NoClassDefFoundError:xx.xx.xx
- android 升级ADT22版本后,使用第三方类库项目报错:java.lang.NoClassDefFoundError:xx.xx.xx
- android adt升级到版本22后,就无法再向lib库里面添加jar了
- 关于升级ADT22后无法使用jar包、bundle库,出现java.lang.ClassNotFoundException错误的解决
- 使用android-junit-report.jar导出单元测试报告
- android中生成和使用jar 分享
- [Mugeda HTML5技术教程之18]如何在Android应用中使用Mugeda动画内容
- 使用内部(com.android.internal)和隐藏(@hide)API[第2部分,定制android.jar]
- Android Developer Toolkit (ADT)升级(来自百度经验)
- 使用Eclipse和ADT插件管理Android项目(Managing Project from Eclipse with ADT)
- 定制android.jar-[使用内部(com.android.internal)和隐藏(@hide)API]
- Android GreenDao使用总结(包括模型生成、增删改查、修改存储路径、数据库更新升级和加解密数据库)
- 【Android】 import跟export使用说明 及 export报错:jarlist.cache: Resource is out of sync with the file syst解决
- android使用GreenDao所需要的jar包
- elipse下怎么使用离线安卓(Android)ADT
- androidADT升级带来的问题解决
- android网络框架Retrofit——简介,使用的jar包
- 18、android开发基础之SharePreference的使用
- Android系统Recovery工作原理之使用update.zip升级过程分析(五)---update.zip包从上层进入Recovery服务