Markdown版本笔记 | 个人GitHub首页 | 个人博客 | 个人微信 | 个人邮箱 |
---|---|---|---|---|
MyAndroidBlogs | baiqiantao | baiqiantao | bqt20094 | baiqiantao@sina.com |
若是在libraries中发现有小红叉,代表引用库错误android
解决办法:
在左侧projects中add引用到的库
如:咱们的支付库引用了如下三个库
git
那么须要在projects中add这三个库
github
完成后clear一下,右侧的libraries中就不会有错误了
微信
而后再在咱们的主工程中用一样的方式引入支付库。app
简单点,也能够直接把jar包拷贝到lib目录下!
完整步骤:
一、将jar包放入工程的libs目录下eclipse
二、右键--> Properties--> Jav Build Path--> 选右侧的libraries--> 将libs目录下jar导入ide
三、选中Order and Export,勾选*.jar,肯定便可工具
实际经验:对于某些jar包,好比v四、v7包,咱们直接把此包放到工做空间目录中,并作一些设置,项目就能直接引用到(描述的不清楚,但实际就是这么回事)。
必定不要忘了,还要在右边的Order and Explrt中勾选刚导入的jar包ui
完成后,会发现多出如下东西:
spa
一、将一个android工程做为库工程
首先它也是普通的android工程,右键--> Properties--> Android--> 选中”Is Library“--> 点击Apply,点击OK,这个android工程就成为了library工程。
这时查看project.properties文件,会发现多了如下一行:
注意:在library工程中不能使用aidl文件,不能引用raw、assets下资源,不能右键运行。
二、工程中引用库工程
右键--> Properties--> Android--> 点击右侧下方的Add按钮,在打开的对话框中选择须要的库工程--> OK,Apply,OK便可
三、在主工程清单文件中声明库工程中的组件
主工程的清单文件中必须声明所引用的库工程中的四大组件
一、平白无故没法引入库的解决方式
先右键--> Android--> remove错误引用的库--> 点击ok;再右键--> Android--> 从新add此库--> 点击ok
也就是,取消引入后要先点击确认后才能再添加,若remove后当即add则无效!
二、库被重复引用致使的问题(补充:缘由多是由于此被引用的库版本不一致!)
若主工程和库工程都引用了一样的其余库或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;
解决方式:
三、库项目使用过程当中须要注意的事项
在使用库项目的时候,由于Android项目结构及编译工具的特殊性,咱们须要注意一些要点,列举以下:
另外说一下资源冲突问题的注意点:
咱们知道本项目的优先级最高,但要注意一点的是string里面的国际化问题。
通常集成的项目都很完善,国际化分辨率什么的都支持,天然本身的项目就支持了这些功能,这样就会出现,你在string里面定义了一个key跟库里面的key同样,但结果值倒是以库的为准的现象,为何?由于手机去找value-zn(通常手机默认是语言是中文)的资源了,因为你原本项目里面没有国际化,因此天然去库里面找资源了,最容易出现的问题就是app_name老是项目库的名字。
四、库项目使用的场景
库项目确实为重复代码代码带来了很大的好处。可是并非什么状况下都是适用的,就像前面提到的适合作一些特定逻辑上的处理,好比新浪微博咱们开发新浪的一些功能可使用新浪微咱们提供的lib项目,它里面主要封装了一些接口的操做。咱们只须要调用就能够了,这种场景库项目来对指定的接口完成指定的事情。若是使用同一个lib项目时接口有很大的改变就不适合使用lib,由于在lib项目中封装的逻辑处理是不能改变的包括接口的调用。和异常的一些处理。咱们必须以前作好足够的设计。在对各类android的控件定义格式的尽可能使用style来完成,来方便不一样子项目来调用同一个库项目修改控件属性的修改性。
最简单的解决方案
若是只是某一个工程(特别是导入的他人的工程)出问题,解决办法就是增长所缺的jar包。
步骤以下:
快速解决方法:
2016-03-21