import小伙伴项目后 关于修改gradle插件版本的问题

本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。
本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。
本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。重要的事情说三遍!!

最近在和同学一起做同一项目的时候,在通过git Bash克隆项目后,又出现了以下的问题!我又回想起了一度被gradle支配的恐惧...嘤嘤嘤....
img_c33ae7fc35dfe75cb00c3478cab9c884.png
YXB(MF~24WXWHE7}G4T`VD5.png

没错,因为最近的VPN被禁了,我又被墙了,在试过诸如lantern,psiphon3的VPN的失效,Shadowsocks,阿里等镜像代理,Ipv6-hosts等修改系统hosts方法皆失效以后,我选择了修改同学上传到github上的项目文件的gradle插件版本的老办法。之后如果还需要上传到github进行团队合作,可以通过修改回版本号上传。

原理:

由于import别人的项目以后,项目gradle插件版本不同的问题(如果你使用的插件版本较高,有时候可以实现兼容,但是如果插件版本低于别人项目的版本,AS就会下载或者更新插件,而由于被墙,往往下载插件要很久),于是我们可以通过使用本地的gradle插件,来使得别人的项目运行起来,之后要把项目上传到github上面时,可以再改回gradle版本号进行上传。

参考博客:blog.csdn.net/study_abc/article/details/60325835

1.在网上下载好固定版本的gradle插件

各版本gradle插件下载地址:services.gradle.org/distributions

2.配置好Gradle_HOME环境变量

在本地的gradle的目录里查看自己下载好的各gradle插件版本

import小伙伴项目后 关于修改gradle插件版本的问题_第1张图片
image.png

配置好系统变量为之前下载好的gradle 变量值为刚才的目录


import小伙伴项目后 关于修改gradle插件版本的问题_第2张图片
image.png

在PATH变量中加上%GRADLE_HOME%\bin

import小伙伴项目后 关于修改gradle插件版本的问题_第3张图片
image.png

3.修改小伙伴的gradle版本

在这一步骤中,最主要有两步,一是使小伙伴的gradle插件失效,二是使用我们刚才搭建好的本地gradle版本
步骤一:使小伙伴的gradle插件失效
打开从github上clone下来的项目的gradle文件夹下的wrapper中的gradle-wrapper.properties


import小伙伴项目后 关于修改gradle插件版本的问题_第4张图片
image.png

修改最后一行代码,使得url无法识别,无法下载项目默认的gradle版本(个人习惯是在https后加123)QAQ

distributionUrl=https\://123services.gradle.org/distributions/gradle-4.1-all.zip

这样,就不会下载默认的gradle插件版本了

步骤二:使用我们刚才搭建好的本地gradle版本
最好先将gradle的版本号改一下,改成我们下载的对应插件版本的gradle版本!


img_17aa6ec7c1b32dc8b009246153475f8f.png
image.png

请注意:这里修改的是gradle的版本号而非gradle插件的版本号,具体的gradle插件版本与gradle版本的关系 请参考geogle开发者网站:
https://developer.android.google.cn/studio/releases/gradle-plugin.html#updating-plugin

打开settings——>Gradle——>use local gradle distribution会自动变成刚才我们设置的GRADLE_HOME系统环境变量的变量值


import小伙伴项目后 关于修改gradle插件版本的问题_第5张图片
image.png

Apply,OK,Gradle Sync,Gradle编译成功啦!!!!
import小伙伴项目后 关于修改gradle插件版本的问题_第6张图片
5IS}KE$V_@_Q2{)O{V5CF}G.png

附:在Gradle Sync后,可能会出现以下的错误!

Gradle DSL method not found: 'XXXX()'

XXX方法可能是geogle()


import小伙伴项目后 关于修改gradle插件版本的问题_第7张图片
TA_PMP0D%U8J4`VE8KFEH4X.png

这是高版本的gradle插件才附带的geogle()依赖,当然,也可能会出现以下的'android()'等


import小伙伴项目后 关于修改gradle插件版本的问题_第8张图片
image.png

此类方法的解决办法,一律是将外层的gradle的版本库的依赖修改,按照它说的
not found的方法一律删掉
not found的方法一律删掉
not found的方法一律删掉
然后外层的gradle就变成了下面这样子:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'//这里写我们gradle的版本,不是插件版本 详情请看3.步骤二 gradle插件与gradle对应版本号

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

请注意:这里的

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

不能省略 且上下文的buildscript{}与allprojects{}依赖的库要一致!!!

好啦QAQ写了那么久的博客 我要赶快去补作业啦QAQ看我写的那么辛苦,真的不加波关注,给个喜欢么~~(●'◡'●)

你可能感兴趣的:(import小伙伴项目后 关于修改gradle插件版本的问题)