? 当运行一个新的项目时,我们经常会遇到gradle相关的报错,常见为can't download
或是can't get sourcexx
导致项目无法编译,所以本文对刚开始编写安卓项目时遇到的环境问题作整理以及解决。
问题背景:当学习他人的项目或者为了和项目合作者在相同运行环境导入外部项目
Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-5.4.1-all.zip'.
问题描述:无法下载5.4.1版本的gradle
可能原因:
解决方案:
将依赖换成国内的镜像源;
在build.gradle(项目名)文件夹下的buildscript
与项目合作者相同环境的情况,一般会使用一些常用框架
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://developer.huawei.com/repo/' }
google()
mavenCentral()
}
采用国内镜像
repositories {
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
maven { url 'https://gitee.com/liuchaoya/libcommon/raw/master/repository/' }
maven { url "https://www.jitpack.io" }
jcenter()
}
阿里云代替goodle、jcenter
repositories {
maven {url 'https://maven.aliyun.com/repository/jcenter'}
maven {url 'https://maven.aliyun.com/repository/google'}
maven {url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
}
查看gradle与gradle plugin版本是否匹配
详细可参考网址:彻底解决gradle与gradle plugin匹配关系以及gradle下载缓慢的问题_gradle下载慢-CSDN博客
gradle.wrapper.gradle-wrapper.properties
gradle插件版本的定义在build.gradle
(项目名)文件里
注:如果报错提示没有说明gradle plugin等的字眼,则该匹配关系大概率没有错
如果上诉方案都没有起作用,可能是下载的android studio有问题,则可以手动将gradle文件下载导入对应的配置文件夹,或者修改为文件夹中已有的gradle版本
自行下载文件导入对应配置文件夹下,默认目录是C:\Users\user\.gradle\wrapper\dists
项目运行的时候,也会遇到一些找不到某文件等的错误
如Can‘t determine type for tag ‘<macro name=“m3_comp_bottom_app_bar_container_color“>
原因则是导入的第三方依赖库版本太高了,不匹配,需要修改版本
说明:
上述问题仅是某一问题的案例,常见的还有无法下载某网址或者HttpRequestException
网络异常等报错,如下:
org.gradle.internal.resource.transport.http.HttpRequestException:Could not GET ‘xxx.jar’
Could not get source 'https://..'
、Could not HEAD 'https://...
等涉及以上相关的,都是因为网络问题导致某些资源文件下载不下来,修改上方解决方案的依赖仓库则可以解决大部分问题。
一般直接修改仓库地址就可以解决问题,但刚接触的时候搜不到最根本影响的,可能根据搜到的乱修改产生其他的问题,如gradle版本升级等。
这个时候就要根据产生的错误提示来对症找解决方法。
Cause: unable to find valid certification path to requested target
resource android:color/system_neutral1_1000 not found.
Can‘t determine type for tag ‘<macro name=“m3_comp_bottom_app_bar_container_color“
原因分析:导入的第三方框架版本太高,与项目中的配置不匹配
解决:降低版本,与appcompat
、material
版本匹配
在
build.gradle(:app)
的dependencies
dependencies {
//appcompat等的版本
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
//导入的第三方框架的版本
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
}
Installed Build Tools revision 31.0.0 is corrupted.
Manifest merger failed : Apps targeting Android 12 and higher are required to specify an explicit
build.gradle(:app)
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.booktest"
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0"
...
}
...
}
//dependencies版本降低
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
}