关于Android依赖库文件的一些经验

来源:互联网 发布:百度网盘老是网络异常 编辑:程序博客网 时间:2024/05/02 06:12

关于Android依赖库文件的一些经验

一、Android studio 依赖可以有3种类型

1、jar 将视图切换至project模式

 

将本地jar文件copylibs文件夹里

之后右键添加libs就好了

2、远端库

 

直接在

 

中的

 

搜索就好

3、library(将grade项目直接以library的方式引入项目)

 

引入module后 现在的编译环境会直接将manifests及资源文件(valuecolorsidsarraysstringsdimenslayout等)合并,所以不用管直接用。(值得注意的是 将build.gradle中的myapplication改为library,并删除应用包名applicationid

之前的编译环境没有这个功能 需要手动copymanifests和资源数据

各个Module之间的资源id不能相同不然会出现id找不到或者空指向异常。

二、Appmodule可以使用已经依赖过的module中的依赖库(所以不需要重新依赖,重新依赖会出现错误,可以使用provided代替compile编译)

dagger2必需在相应的module里面重新配置环境;

Butterknife不能再librarymodule里使用(原因:R文件的id不是常量,所以switch语句也不能使用)

三、dagger2butterknife冲突解决

    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'

     }

四、compileprovided的区别:

·  compile
默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies传递到依赖的项目中。

·  provided
compile相似,但是表明了dependency JDK或者容器提供,例如Servlet AP和一些 Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。

五、当然还有其他的依赖类型(只是作用域不同:生命周期)

 

 

 

1 0
原创粉丝点击