在AndroidStudio中使用gradle构建出现的一些问题
2017-06-11 23:35
239 查看
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 . . . }
其实对本地的project也是可以进行exclude,只是需要在project 外面再包一层 compile(project(':react-native-custom-module')) { exclude group: 'com.facebook.react', module: 'react-native' }
其他的日后补充
相关文章推荐
- AndroidStudio中使用老版本Gradle出现的问题
- Android 使用 Gradle 构建时,出现 Crunching Cruncher xxx.9.png failed 问题的解决方法
- 使用AndroidStudio出现的一些问题及解决办法
- 在使用android studio过程中,使用gradle编译的时候总会出现一些问题,下面是几个常见问题的解决方法。
- Android使用Gradle构建的一些遇到的问题
- AndroidStudio 使用gradle依赖过程出现的问题
- 使用gdiplus.lib出现的一些问题解决办法(不断增加中。。。)
- 使用gradle打包android工程中出现的问题
- 使用android兼容包android-support-v4.jar出现的一些问题
- 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法
- Gradle构建Android Project出现java.io.File找不到的问题
- 使用Json出现的一些问题的解决
- 小结使用javac出现的一些小问题
- 使用OmniORB出现的一些问题及已实现的解决方法
- 使用构建工具gradle打包时,遇到的中文问题和解决方案
- 使用gyp构建项目,使用ninja更快的编译,以及使用出现和解决的问题记录
- 使用控制台调试SharePoint出现的一些问题的解决方案
- svn使用方法和出现的一些问题
- 关于图形化编程软件sikuli 初学者使用时可能容易出现的一些问题
- 使用mysql出现的一些问题