美文网首页
android studio 2.3 的maven坑

android studio 2.3 的maven坑

作者: 蝴蝶之梦天使 | 来源:发表于2017-03-04 22:17 被阅读388次
    图片来之网络

    吐槽,请直接拉到最后查看结果

    苦心学习android快4个月了,现在能够独立的完成开发APP,给自己一个👍,收获满满的。当然需要感觉公司的Android先驱们留下的遗作,加上Ctrl + C 和 Ctrl + V的神作。
    今天心情好好的去加班,想把进度赶赶的,但是一到公司就提示Android Studio 有更新,果断的点击了“Update”,坐等升级。公司的网络真是神了,秒升级啊。(今天我是第一个到公司,当奶爸的真不容易啊,6点起床的,然后就去公司加班了)接着升级了Gradle version到3.3 和 Android Plugin Version到2.3.0,并且升级了下Andriod SDK Build-Tools到25.0.2. 再默默的手动修改了每个Module的依赖。在点击Sync Now后,噩梦就开始了:

    Error: Failed to resolve: com.*.lib:router:1.1
    

    第一个反应就是升级后导致获取私有maven库的文件失败了:

    • 私有库Maven和android studio 2.3 不兼容
    • 私有库Maven也应该升级,需要对SonyType Nexus进行升级
    • 私有库上的router的jar文件不是最新编译的,所以不兼容
    • android studio上的Maven插件需要升级
    • 。。。等等脑洞大开的查找

    开始baidu,stack overflow,google,android developers, android studio 中文论坛,都没有找到相关的内容。
    不停的尝试。
    声明处,不断的研究是不是2.3版本后,进行语法的修改

    repositories {
        maven {
            url "http://nexus.*.com:8081/nexus/content/repositories/Android-Releases"
            credentials {
                username '*'
                password '*'
            }
        }
    }
    

    依赖

    compile '*:router:1.1'
    

    并且进行router模块修改,将router工程更新为最新的android studio 2.3和Gradle version 3.3, Android Plugin Version 2.3.0,Android SDK Build-Tools 25.0.2。再进行上传。

    compile '*:router:1.2'
    

    修改为1.2版本后,依然是有问题,报了一样的错误

    Error: Failed to resolve: com.*.lib:router:1.2
    

    。。。 。。。 。。。
    此处省略一百万字
    。。。 。。。 。。。

    一天过去了,回到家又研究了一晚上,突然发现一个设置很有问题,然后进行重试
    重点来了

    在gradle.properties文件中有两行镜像的代理设置

    systemProp.http.nonProxyHosts=mirrors.opencas.cn
    systemProp.http.proxyHost=mirrors.neusoft.edu.cn
    

    虽然在android studio 2.2.3版本中,没有出现问题,那么不能下载maven的原因会不会是因为这个代理呢,在2.3版本中有了一些特殊的处理呢。

    将代理注释后,Sync Now点击后,在没有报希望的情况下,Build Success。

    My God!!!

    一切的根源就是这个代理。询问了那么多,还真的没有人会想到代理还会这个设置。呵呵 (大大的,远远的超出我iOS开发的逻辑)

    然后学习了下代理配置

    以下配置写在gradle.properties中:

    //以下为http协议proxy配置
    systemProp.http.proxyHost=www.somehost.org //proxy主机
    systemProp.http.proxyPort=8080 //proxy端口
    systemProp.http.proxyUser=userid //proxy权限验证用户,没有就删掉该行
    systemProp.http.proxyPassword=password //proxy权限验证密码,没有就删掉
    systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost //不使用proxy的域名
    
    //以下为https协议proxy配置,参数作用同http协议
    systemProp.https.proxyHost=www.somehost.org
    systemProp.https.proxyPort=8080
    systemProp.https.proxyUser=userid
    systemProp.https.proxyPassword=password
    systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost
    

    // END 高手不要笑,仅仅是吐槽下

    相关文章

      网友评论

          本文标题:android studio 2.3 的maven坑

          本文链接:https://www.haomeiwen.com/subject/iqwjgttx.html