Android初识的一些问题记录
关于Gradle的下载和Android Studio新项目构建
构建时很多包下不动,新建项目需要半个小时,还失败
解决思路一:全局挂代理(达咩,愉快的失败,从东亚到南亚再到欧洲,美洲都不行)
#解决思路二:
gradle-wrapper.properies文件中的distributionUrl后面那个地址可以访问,但是巨慢,所以我们可以通过多线程下载工具去那个网站手动下载然后放到类似于这样:
C:\Gradle\wrapper\dists\gradle-8.0.1-all\2okbfzz7yoy121hkgs491bajf\压缩包放这里
如果你没有设置过GRADLE_HOME和GRADLE_USER_HOME这两个系统变量,AS会默认在你的主目录就是用户目录下新建一个.gradle的文件夹,作为上面变量的值,wrapper\dist文件夹也会新建在这里。里面的结构和放置位置同我上面指出的,但是注意手动下载的版本要和dists下的文件夹一致
其实你构建不成功不单单是gradle这个包下载不行,还有很多小一点的包,也是下不动的,不过我看到最快的应该是将这个distributionUrl后面的链接直接改成腾讯云的去下载gradle,不过有可能会出现connection to Gradle distribution ‘https://mirrors.cloud.tencent.com/gradle/gradle-8.0.1-all.zip’ as it has been stopped.,不过也算一个办法。至于小包嘛,看解决思路三
https://mirrors.cloud.tencent.com/gradle/gradle-8.0.1-all.zip
这是腾讯云链接
解决思路三 这个是我在网上拾荒看到的,有的人修改的是
"C:\Gradle\gradle-8.0.1\init.d\init.gradle"这个文件
没有就新建一个
allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
maven {
url 'https://maven.aliyun.com/repository/google/'
}
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo.maven.apache.org/maven2/') || url.startsWith('https://repo.maven.org/maven2')
|| url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')
|| url.startsWith('https://maven.google.com/') || url.startsWith('https://dl.google.com/dl/android/maven2/')) {
//project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
}
buildscript {
repositories {
maven{ url 'https://maven.aliyun.com/repository/public/'}
maven{ url 'https://maven.aliyun.com/repository/google/'}
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')
|| url.startsWith('https://dl.google.com/dl/android/maven2/')) {
//project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
remove repo
}
}
}
}
}
}
有人说改build.gradle,可是无论是项目的还是模块的,我都看了,这两个玩意不像是可以加maven的URL的文件啊
不过我倒是看到零星的几篇改setting.gradle,下面是我改的,其实大家可以去阿里云上面找仓库地址
https://developer.aliyun.com/mvn/guide
pluginManagement {
repositories {
mavenLocal()
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/spring-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google'}
gradlePluginPortal()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenLocal()
mavenCentral()
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
}
rootProject.name = "UILayoutTest"
include ':app'
}
还有一个思路,有一个博主说把GRADLE_USER_HOME可以设置成本地的Maven仓库,上面代码里的mavenLocal()其实就是到本地仓库去找,然后到maven中心仓库去找,这里maven的中心仓库,我们本地配置文件里也改成阿里云的,maven中心仓库的阿里镜像配置文件夹如下:
“C:\Maven\apache-maven-4.0.0\apache-maven-4.0.0-alpha-4\conf\settings.xml”
因为之前没有下过,一直用idea捆绑的,我就现下了一个,maven如果一直用的是idea捆绑的,那么我们的本地仓库在主目录的.m2文件夹里,setting.xml文件也在这里,也许你没有,不过网上抄抄也可以,我的要素过多,就贴一个镜像的吧
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>