gradle常见问题解决笔记
一、新建项目build报错,但是rebuild没有任何问题
代码优先:
dependencies { androidTestCompile('com.android.support:support-annotations:26.1.0') { force = true } ...}
每次新建项目的时候,都会报一个比较神奇的错误,不知道是我这边版本问题还是配置问题,之前每次我都是把
'com.android.support:appcompat-v7:26.1.0'
改成
'com.android.support:appcompat-v7:27.1.1'
但是这样并没有解决遇到的问题,只是避开问题,尤格泡泡告诉我不去探寻知识是错误的,所以我决定去搜一下问题所在,然后,,,尼玛我去年搜了一天搜不到的解决方案现在置顶了?androidTestCompile进行强制编译就可以通过了。
我嘞个去去去去去,gradle知识果然是我的盲区,然而盲区果然会带来许多问题。
二、依赖阿里云OSS的时候okhttp版本错误。
这个问题很蛋疼,网上找资料都不好找,都开始怀疑自己技术水平,最后找同事询问才知道解决办法,解决方法还是出现在我的知识盲区——gradle里头。
最开始按照阿里云官网上面推荐的maven依赖写的,嗯,没问题,编译正常,上传正常,等等crash了,一定是我写的问题,等等log说错误在okhttp里,一定是我依赖错误,等等我并没有依赖okhttp:3.11.0,莫急不慌,,,再看两遍官方文档
阿里云:Android Studio方式(推荐) Maven依赖
dependencies { compile 'com.aliyun.dpa:oss-android-sdk:+' compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okio:okio:1.9.0'}
我按照文档来没问题,,,难道是我自己依赖的okhttp不对么,我检查过了啊,全局搜索okhttp:3.11.0,搜不到。看样子是出事了啊,网上有没有遇到相同问题的,,,我感觉我关键词用的不对竟然搜索不到。完了需求出问题项目要完我要被祭天了(இдஇ; )。
问问同事吧,嗯阿里云是不是内部集成了最新版okhttp代码,加半句试试。
dependencies { compile ('com.aliyun.dpa:oss-android-sdk:+'){ exclude module: 'okhttp' } compile 'com.squareup.okhttp3:okhttp:3.4.1' compile 'com.squareup.okio:okio:1.9.0'}
依赖'com.aliyun.dpa:oss-android-sdk:+'但是不包括里头的okhttp模块。编译运行走逻辑没问题可以成功上传必胜K.O.~
总结一下,这种莫名其妙多依赖的包,一定还是自己加进去的,如果遇到这种问题导致版本不对,通过exclude module: [module name]来解决问题。
附发现依赖多的地方
这是我重现问题用到的一个测试demo中External Libraries目录下发现的,此目录下就是所有依赖过的依赖包。
更多相关文章
- 【Android】android:padding属性设置对ImageButton无效问题
- Android(安卓)开发中遇到的 bug(6)
- android Dialog 背景问题
- Android常遇疑难问题
- Android在listview添加checkbox实现单选多选操作问题
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Fedora镜像
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像