首页 > 程序开发 > 移动开发 > Android >

在AndroidStudio中使用gradle构建出现的一些问题

2017-06-12

在AndroidStudio中使用gradle构建出现的一些问题。在做公司项目跟进的时候,发现项目集成了很多moudle,这就导致最后编译出来的工程关于support 的一系列资源的版本不一致,因为有些support 会根据高版本的升级。

1.版本不一致导致运行出错

在做公司项目跟进的时候,发现项目集成了很多moudle,这就导致最后编译出来的工程关于support.的一系列资源的版本不一致,因为有些support.会根据高版本的升级,例如我现在使用的是recyclerView23.4.0的依赖,其中需要使用support-v4的一些工具,可是某个moudle把v4定在的22.2.0,这就导致我使用过程中会 ClassNotFound 的异常,moudle由于某些原因不能升级,故而只能把recyclerView降价,可是即使我把依赖的版本降低编译出来的依然是23.4.0,这可能就是因为别的moudle使用的高版本导致的。

1.

这时候一种是像网上是查依赖树,看哪个moudle包含了这个高版本之后用命令去除(直接用的就是系统生成的例子,具体使用的时候直接模仿好了)

  androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

2.

另一种就是采用强制版本,我就是使用这个方法,把recyclerView强行降到22.20,在moudle的buidle中最外层加上

configurations.all{
    resolutionStrategy{
        force'com.android.support:recyclerview-v7:22.2.0'
    }
}

2.版本不一致导致不方便管理

这种情况的话直接用编程思想,把版本号定义为一个固定的参数,之后在其他的gradle中直接使用这个参数,最后需要更改的时候直接改一个参数就行了,牵一发而动全身,就是这个道理,编程本就该这样。
在根目录中最外层定义

ext{
    BUILD_TOOL_VERSION = '25.0.0'

}

之后直接在其他子目录的gradle中使用这个参数就行了

android {
    compileSdkVersion 22
    buildToolsVersion BUILD_TOOL_VERSION

 .
 .
 .
}
相关文章
最新文章
热点推荐