eclipse 库 library jar包 工程 总结
引入jar包
右键--> Properties--> Jav Build Path--> 选右侧的libraries--> 把jar包添加进去即可
一定不要忘了,还要在右边的Order and Explrt中勾选刚导入的jar包完成后,会发现多出以下东西:
引用库
1、将一个android工程作为库工程
首先它也是普通的android工程,右键--> Properties--> Android--> 选中”Is Library“--> 点击Apply,点击OK,这个android工程就成为了library工程。这时查看project.properties文件,会发现多了以下一行:注意:在library工程中不能使用aidl文件,不能引用raw、assets下资源,不能右键运行。
2、工程中引用库工程
右键--> Properties--> Android--> 点击右侧下方的Add按钮,在打开的对话框中选择需要的库工程--> OK,Apply,OK即可3、在主工程清单文件中声明库工程中的组件主工程的清单文件中必须声明所引用的库工程中的四大组件<activity>,<service>,<receiver>,<provider>以及<permission>,<uses-library>,及其他类似的元素,并且必须通过它们的包全名来声明引用的库组件。
相关问题处理
1、无缘无故无法引入库的解决方式
- 先右键--> Android--> remove错误引用的库--> 点击ok;再右键--> Android--> 重新add此库--> 点击ok
- 也就是,取消引入后要先点击确认后才能再添加,若remove后立即add则无效!
2、库被重复引用导致的问题(补充:原因可能是因为此被引用的库版本不一致!)
- 若主工程和库工程都引用了同样的其他库或jar包时,会导致重复引用的异常。
- 比如,我按以上步骤创建了两个工程,没做其他改变前,相关的设置为:
主工程库工程这时运行的话,异常提示信息如下:[2015-09-08 15:53:10 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;[2015-09-08 15:53:10 - Lib1] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
更改方式:
- 删除主工程里库工程已经引用的jar包或其他库工程,并且clear一下所有涉及到的工程。
- 但是,奇怪的是,若主工程引用了两个库工程,这两个库工程若引用了V7库时运行并没有问题
- 更奇怪的是,此时再在主工程中添加同样的V7库后也能正常运行,卧槽!!!
3、库项目使用过程中需要注意的事项在使用库项目的时候,因为Android项目结构及编译工具的特殊性,我们需要注意一些要点,列举如下:
- 如果工作项目和库项目的资源名称重复,编译器会优先使用工作项目的资源,若多个库项目中的资源名称重复,则根据在列表中的排序由上到下优先级依次降低;
- 工作项目被编译时,会合并工作项目和库项目的R文件,如果R文件中有常量同名,同样,也会按以上优先级处理;
- 无法将一个库项目导出为一个jar文件;
- 工作项目的Android系统版本必须大于等于库项目的系统版本;
另外说一下资源冲突问题的注意点:我们知道本项目的优先级最高,但要注意一点的是string里面的国际化问题。一般集成的项目都很完善,国际化分辨率什么的都支持,自然自己的项目就支持了这些功能,这样就会出现,你在string里面定义了一个key跟库里面的key一样,但结果值却是以库的为准的现象,为什么?因为手机去找value-zn(一般手机默认是语言是中文)的资源了,由于你本来项目里面没有国际化,所以自然去库里面找资源了,最容易出现的问题就是app_name总是项目库的名字。4、库项目使用的场景库项目确实为重复代码代码带来了很大的好处。但是并不是什么情况下都是适用的,就像前面提到的适合做一些特定逻辑上的处理,比如新浪微博我们开发新浪的一些功能可以使用新浪微我们提供的lib项目,它里面主要封装了一些接口的操作。我们只需要调用就可以了,这种场景库项目来对指定的接口完成指定的事情。如果使用同一个lib项目时接口有很大的改变就不适合使用lib,因为在lib项目中封装的逻辑处理是不能改变的包括接口的调用。和异常的一些处理。我们必须之前做好足够的设计。在对各种android的控件定义格式的尽量使用style来完成,来方便不同子项目来调用同一个库项目修改控件属性的修改性。
eclipse 库 library jar包 工程 总结的更多相关文章
- 使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包 网上打包说用eclipse安装fat jar插件,但是貌似现在都不能用了,所以我只能按照eclipse自带的方法打包了. ...
- eclipse library jar包 使用总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 如何给Eclipse中添加库(jar包)
折腾Eclipse时,经常会遇到这种情况: 缺少某个库,找到之后,需要将该库,jar包,加入到当前项目,使得代码中的import xxx得以正常导入. 举例: [已解决]Eclipse的java代码出 ...
- 将Spring源码转换为工程 + 导入Eclipse时缺失jar包
将源码转换为工程: 比如查看Spring事务部分的源码. 打开cmd窗口,切换到Spring-tx文件夹下,执行命令 “gradle cleanidea eclipse” . 缺失jar包: 第一步: ...
- eclipse下使用maven配置库托管jar包
1.项目是通过maven配置库托管jar包 首先要保证maven配置库中有相应的jar包才能通过这个方法来添加jar包.maven的有点就是把要用到的jar包统一放在一个配置库中,在某个项目需要用到这 ...
- Eclipse如何生成jar包
Eclipse如何生成jar包 图1 右击项目Properites,选择Android,选择Is Library,然后会编译生成jar包在bin目录下.
- 分析-eclipse已经导入jar包了,但还是出现classNotFound异常
场景:分析-eclipse已经导入jar包了,但还是出现classNotFound异常 分析--eclipse已经导入jar包了,但还是出现classNotFound错误 最近在做一个web项目时,由 ...
- java -jar 执行 eclipse export 的 jar 包报错处理
1. 错误1:打 jar 包执行,报错,找不到 类库的 jar 包 F:\>java -jar remoteLogin.jarException in thread "AWT-Even ...
- eclipse 下生成jar包
eclipse 下生成jar包 第一:普通类导出jar包,我说的普通类就是指此类包含main方法,并且没有用到别的jar包. 1.在eclipse中选择你要导出的类或者package,右击,选择Exp ...
随机推荐
- Android学习-----Button点击事件几种写法
Button点击事件:大概可以分为以下几种: 匿名内部类 定义内部类,实现OnClickListener接口 定义的构造方法 用Activity实现OnClickListener接口 指定Button ...
- strtolower() strtoupper()等字符串大小写转换函数
$str = "Mary Had A Little Lamb and She LOVED It So"; string strtolower ( string $str )— 将字 ...
- [Python笔记]第三篇:深浅拷贝、函数
本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...
- js中typeof的用法
一. 经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组. if(document.mylist.length != "undefine ...
- Uva 120 - Stacks of Flapjacks(构造法)
UVA - 120 Stacks of Flapjacks Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld &a ...
- Spark Executor Driver资源调度小结【转】
一.引子 在Worker Actor中,每次LaunchExecutor会创建一个CoarseGrainedExecutorBackend进程,Executor和CoarseGrainedExecut ...
- codevs 2152 滑雪
2152 滑雪 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场 ...
- IDF 实验室部分题目WriteUp
前天花了一个下午的时间刷了几道IDF实验室的题目, 这个网站实在是有点冷清, 题目也比较少, 所以就被我和师兄们刷榜了2333... 因为我最先开始做, 所以就干脆刷到第一去了. 题目很水, 切莫见怪 ...
- COALESCE函数
--SQL学习笔记一 --函数coalesce --功能返回参数中第一个非NULL值 --语法 COALESCE ( expression [ ,n ] ) --创建测试表 IF OBJECT_ID( ...
- SQL SELECT INTO 语句
SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用 ...