本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。
本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。
本文适用于使用VPN无效,AndroidStudio使用Http Proxy镜像代理无效,修改系统Hosts均无效的无法科学上网的劳苦大众。。。重要的事情说三遍!!
没错,因为最近的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
各版本gradle插件下载地址:services.gradle.org/distributions
在本地的gradle的目录里查看自己下载好的各gradle插件版本
配置好系统变量为之前下载好的gradle 变量值为刚才的目录
在PATH变量中加上%GRADLE_HOME%\bin
在这一步骤中,最主要有两步,一是使小伙伴的gradle插件失效,二是使用我们刚才搭建好的本地gradle版本
步骤一:使小伙伴的gradle插件失效
打开从github上clone下来的项目的gradle文件夹下的wrapper中的gradle-wrapper.properties
修改最后一行代码,使得url无法识别,无法下载项目默认的gradle版本(个人习惯是在https后加123)QAQ
distributionUrl=https\://123services.gradle.org/distributions/gradle-4.1-all.zip
这样,就不会下载默认的gradle插件版本了
步骤二:使用我们刚才搭建好的本地gradle版本
最好先将gradle的版本号改一下,改成我们下载的对应插件版本的gradle版本!
请注意:这里修改的是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系统环境变量的变量值
附:在Gradle Sync后,可能会出现以下的错误!
Gradle DSL method not found: 'XXXX()'
XXX方法可能是geogle()
这是高版本的gradle插件才附带的geogle()依赖,当然,也可能会出现以下的'android()'等
此类方法的解决办法,一律是将外层的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看我写的那么辛苦,真的不加波关注,给个喜欢么~~(●'◡'●)