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]来解决问题。

附发现依赖多的地方

gradle常见问题解决笔记_第1张图片

这是我重现问题用到的一个测试demo中External Libraries目录下发现的,此目录下就是所有依赖过的依赖包。

你可能感兴趣的:(Android,Android,gradle,AliyunOSS,Android,Studio)