安卓添加外部Library报NoClassDefFoundError异常,无法生成Android Dependencies目录,一种简单解决办法
来源:互联网 发布:mysql in和and起冲突 编辑:程序博客网 时间:2024/06/04 20:08
最近在自学安卓开发,在网上下载的开源library,然后再添加Jar包的时候,编译无误,但是运行后一直出问题。然后搜索网上的时候发现也好多人遇到这个问题,但是各种方法都试过。花了一下午时间,还是没找出问题。本来就是学硬件开发的,软件只是业余爱好,差点就放弃了。
每次直接拖入再adding it to the build path
或者修改.classpath
或者更改project.properties和proguard-project.txt
或者Add User Library
或者删除重新建立工程
或者什么的什么的
总之基本所有方法都试过了,
每次Jar包不是在Android private Library 中,要么是在Android reference Library 中。
始终无法生成Android Dependencies。
最后在国外网站上发现了一个办法。
原文地址
http://stackoverflow.com/questions/11443262/actionbarsherlock-java-lang-noclassdeffounderror-com-actionbarsherlock-rstyle
右键工程文件,打开Properties,选中Android选项卡,然后在下面Library下点击Add...
然后在你的工程文件中选择你需要加入进来的Library工程。
之后你的Android Dependencies就会自动生成了,之后运行就不会报错了。
本方法应该只适用于那些有Library工程文件的吧,如果只有jar包,那就不晓得怎么去处理了。
后来又查了一下:
刚刚又继续深入的研究了一下,之所以会出现我这种问题,是因为我的jar包中引用了外部的自定义的UI资源,比如string、theme、style,因为jar包中通常是不包含这些资源的,所以如果你引用的jar包是包含有我说的这种引用了的外部自定义UI资源的话,那么这个jar包是不可用的,不论你怎么导入。。。
其实从报错当中就可以看出来,比如说你的错误是java.lang.NoClassDefFoundError: com.weibo.android.R$style
后方有个R$xxx的话,这就代表你的jar包中通过R引用了外部资源,你根本不知道这资源是什么,所以这个jar包是不可用的。
这时候,你就需要像我上面说的,用那种方法来将Library的工程也包含进来,这个软件默认的也会引用那个Library工程中的UI资源。
所以说,如果你的NoClassDefFoundError后面指向的是R$xxx的话,那么你就必须包含Library工程目录。
这其实就是安卓项目依赖和导入jar包的区别。项目依赖是会引用那个依赖工程中的自定义UI资源的,而导入jar包是没有的。
所以通常的那些开源的,比如说绘图什么的,这些是必须用依赖注入的方式导入项目的。但是算法架构什么的就可以用jar包形式导入。
安卓开发新手的个人拙见,请大神不要嘲笑= =
- 安卓添加外部Library报NoClassDefFoundError异常,无法生成Android Dependencies目录,一种简单解决办法
- [安卓]Android 工程 gen 目录无法生成的解决办法汇总
- 关于安卓引入外部字体的一种解决办法
- android 添加外部jar java.lang.NoClassDefFoundError
- 安卓引入library后R文件无法生成
- Android添加library报错
- Android 添加Library Dependencies(库依赖)的方法
- Android Retrofit报错NoClassDefFoundError异常
- android工程gen目录无法生成的解决办法汇总
- android工程gen目录无法生成的解决办法汇总
- Android工程gen目录无法生成的解决办法汇总
- Android工程gen目录无法生成的解决办法汇总
- Android studio 出现java.lang.NoClassDefFoundError错误的一种解决方案 5.0以下机型无法运行应用报错
- gen目录无法生成的解决办法汇总
- Android Add外部library工程,总是链接失败的解决办法
- android地图开发出现java.lang.NoClassDefFoundError: MyPositionActivity......异常解决办法
- 安卓(Android)surfaceview无法使用gesturedetector的解决办法
- 4我回来了+安卓程序报错,无法启动的解决办法
- android 手机开机监听
- 7个步骤:让JavaScript变得更好
- 第十四章、TIny4412 U-BOOT移植十四 编译产生内核
- 基于jQuery的视频和音频播放器jPlayer
- NPAPI插件开发详细记录:用VS2010开发NPAPI插件步骤
- 安卓添加外部Library报NoClassDefFoundError异常,无法生成Android Dependencies目录,一种简单解决办法
- github 开源项目收集
- mina学习笔记四:交互的核心IoSession
- 面向对象编程 ,接口
- 【木头Cocos2d-x 027】Lua篇(第02章):Demo讲解之Lua和C++牵手
- 正式成为北漂一族
- 第十五、十六、十七、十八章、TIny4412 U-BOOT移植 LCD原理分析一、二、三、四
- ThinkPHP的一些常用方法
- 【木头Cocos2d-x 028】Lua篇(第03章):简单解析Lua的堆栈