关于Android依赖库文件的一些经验
2016-12-27 09:10
344 查看
关于Android依赖库文件的一些经验
一、Android studio 依赖可以有3种类型
1、jar 将视图切换至project模式
将本地jar文件copy如libs文件夹里
之后右键添加libs就好了
2、远端库
直接在
中的
搜索就好
3、library(将grade项目直接以library的方式引入项目)
引入module后 现在的编译环境会直接将manifests及资源文件(value、colors、ids、arrays、strings、dimens、layout等)合并,所以不用管直接用。(值得注意的是
将build.gradle中的myapplication改为library,并删除应用包名applicationid)
之前的编译环境没有这个功能
需要手动copymanifests和资源数据
各个Module之间的资源id不能相同不然会出现id找不到或者空指向异常。
二、App的module可以使用已经依赖过的module中的依赖库(所以不需要重新依赖,重新依赖会出现错误,可以使用provided代替compile编译)
dagger2必需在相应的module里面重新配置环境;
Butterknife不能再library的module里使用(原因:R文件的id不是常量,所以switch语句也不能使用)
三、dagger2与butterknife冲突解决
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.0'
//dagger2
compile 'com.google.dagger:dagger:2.6'
***compile 'com.google.dagger:dagger-compiler:2.6'***
compile 'org.glassfish.main:javax.annotation:4.0-b33'
//butterkinife
compile 'com.jakewharton:butterknife:8.2.1'
compile 'com.jakewharton:butterknife-compiler:8.2.1'
}
四、compile与provided的区别:
· compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies会
传递到依赖的项目中。
· provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet
AP和一些 Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
五、当然还有其他的依赖类型(只是作用域不同:生命周期)
一、Android studio 依赖可以有3种类型
1、jar 将视图切换至project模式
将本地jar文件copy如libs文件夹里
之后右键添加libs就好了
2、远端库
直接在
中的
搜索就好
3、library(将grade项目直接以library的方式引入项目)
引入module后 现在的编译环境会直接将manifests及资源文件(value、colors、ids、arrays、strings、dimens、layout等)合并,所以不用管直接用。(值得注意的是
将build.gradle中的myapplication改为library,并删除应用包名applicationid)
之前的编译环境没有这个功能
需要手动copymanifests和资源数据
各个Module之间的资源id不能相同不然会出现id找不到或者空指向异常。
二、App的module可以使用已经依赖过的module中的依赖库(所以不需要重新依赖,重新依赖会出现错误,可以使用provided代替compile编译)
dagger2必需在相应的module里面重新配置环境;
Butterknife不能再library的module里使用(原因:R文件的id不是常量,所以switch语句也不能使用)
三、dagger2与butterknife冲突解决
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.1.0'
//dagger2
compile 'com.google.dagger:dagger:2.6'
***compile 'com.google.dagger:dagger-compiler:2.6'***
compile 'org.glassfish.main:javax.annotation:4.0-b33'
//butterkinife
compile 'com.jakewharton:butterknife:8.2.1'
compile 'com.jakewharton:butterknife-compiler:8.2.1'
}
四、compile与provided的区别:
· compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies会
传递到依赖的项目中。
· provided
跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet
AP和一些 Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。
五、当然还有其他的依赖类型(只是作用域不同:生命周期)
相关文章推荐
- android创建文件夹和文件的一些经验教训
- Android-关于屏幕适配的一些经验
- 【Android】导入第三方库时,关于so文件的一些思考
- 关于android的mk文件的一些见解
- android创建文件夹和文件的一些经验教训
- 关于Android控件EditText的属性InputType的一些经验,java组合多个参数
- Android开发——关于shape和Selectors文件的一些属性
- android创建文件夹和文件的一些经验教训
- android创建文件夹和文件的一些经验教训
- Android-关于屏幕适配的一些经验
- Android-关于屏幕适配的一些经验
- 关于Java解压文件的一些坑及经验分享(MALFORMED异常)
- android创建文件夹和文件的一些经验教训
- 关于android的mk文件的一些见解
- Android-关于屏幕适配的一些经验
- 【Android开发经验】关于dip、dpi和分辨率的一些事
- 关于Android混淆的一些经验
- 关于Java解压文件的一些坑及经验分享(MALFORMED异常)
- 【Android】导入第三方库时,关于so文件的一些思考
- 【Android】关于Android控件EditText的属性InputType的一些经验