慢更
1 在build.gradle中加载依赖完成后library中没有/报can not find xxxx依赖
下述两个方法目前解决了我的大部分问题,若有其他解决方案后续再更
1 若依赖有jar包
可直接将jar包放入lib文件夹(若无lib包可自行创建),随后右键导入
可参考下述链接
https://blog.csdn.net/ygd1994/article/details/51346984
2若依赖无jar包
可尝试换mave源
在项目buildgradle中新增
maven {
url 'https://maven.aliyun.com/repository/public/' }
maven {
url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven {
url 'https://maven.aliyun.com/repository/central' }
参考下述链接
https://www.jianshu.com/p/8a1148d1162d
2 AAPT2 编译报错 AAPT2 error
这个网上还蛮多不一样的解决方案的
其中在项目的gradle.properties中添加: android.enableAapt2=false 应该是已经彻底无法解决了。
我的最终解决方案是降低build.gradle中的SdkVersion,具体原因还未知,但的确解决了appt2报错
compileSdkVersion 34
buildToolsVersion "34.0.0"
//
targetSdkVersion 34
将其改为
compileSdkVersion 30
buildToolsVersion "30.0.0"
//
targetSdkVersion 33
贴几个其他博主方案
1、删除导致该问题的jar包
https://blog.csdn.net/ExploreJupiter/article/details/132949567
2、检查res文件/检查布局文件引用/ AS的gradle路径 不能为中文
https://blog.csdn.net/zhtttyyzc/article/details/81510069
3 文件类型读不全
在做项目过程中,发现app无法读取dsd文件,但是读写权限是没问题的,也适配了android13+,仍然无法读取dsd类型。
后来几经转折,才读到相关博客。
在AndroidManifest.xml中添加以下代码
<application
android:requestLegacyExternalStorage="true">
...
</application>
具体原因如下博客所示。
http://t.csdnimg.cn/CGg0p
4 第三方依赖库使用android,本项目为androidx,依赖冲突。
日志大致内容如下
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.12.0.aar ->
core-1.12.0-runtime (androidx.core:core:1.12.0) and support-compat-26.1.0.aar ->
support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.12.0.aar ->
core-1.12.0-runtime (androidx.core:core:1.12.0) and support-compat-26.1.0.aar -> support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0) Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.12.0.aar
-> core-1.12.0-runtime (androidx.core:core:1.12.0) and support-compat-26.1.0.aar
-> support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0) Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.12.0.aar
-> core-1.12.0-runtime (androidx.core:core:1.12.0) and support-compat-26.1.0.aar
-> support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0) Duplicate class android.support.v4.os.IResultReceiver$Stub found in modules core-1.12.0.aar
-> core-1.12.0-runtime (androidx.core:core:1.12.0) and support-compat-26.1.0.aar
-> support-compat-26.1.0-runtime (com.android.support:support-compat:26.1.0) Duplicate class android.support.v4.os.IResultReceiver$Stub$Proxy found in modules core-1.12.0.aar
项目gradle.properties中添加以下代码
android.useAndroidX=true
android.enableJetifier=true
1 android.useAndroidX=true:表示使用 AndroidX 库。
2 android.enableJetifier=true:表示自动将依赖项中的 Support Library 替换为 AndroidX 库。
参考
https://www.cnblogs.com/dongweiq/p/17072015.html
5 Android编译/导出apk时错误:Missing classes detected while running R8.
问题:Missing classes detected while running R8.
Please add the missing classes or apply additional keep rules that are generated in X:\xxxx\app\build\outputs\mapping\release\missing_rules.txt.
解决:
打开:X:\xxxx\app\build\outputs\mapping\release\missing_rules.txt,将里面的内容复制到proguard-rules.pro内,重新编译/导出
层级如下,但因为已经解决,所以该txt不在图片中。
参考
https://www.cnblogs.com/chenmiaotian/p/18278550
6 第三方库使用问题
1 retrofit&okhttp java.net.ProtocolException: Expected ‘:status’ header not present
更新当前使用的okhttp/retrofit版本到最新版本或者不显示该error的版本即可
参考
https://blog.csdn.net/qq_34895720/article/details/100083754
https://cloud.tencent.com/developer/ask/sof/308407
2 Firebase Crashlytics集成
集成后,release时始终报错
*
Execution failed for task ':app:uploadCrashlyticsMappingFileXXXRelease'.
> org.apache.http.conn.HttpHostConnectException:
> Connect to firebasecrashlyticssymbols.googleapis.com:443
> [firebasecrashlyticssymbols.googleapis.com/172.217.160.74]
> failed: Connection timed out: connect
方法1 科学上网
方法2 在app项目的build.gradle中添加以下代码
gradle.taskGraph.whenReady {
tasks.each {
task ->
if (task.name.contains("uploadCrashlyticsMappingFile")) {
task.enabled = false
}
}
}
参考
https://blog.csdn.net/u010976213/article/details/107109187
3 ButterKnife 和 Gradle 冲突
发现冲突后,我先考虑了修改gradle版本,于是又出现了 4 中的问题
后续修改butterknife版本,可编译通过
参考
https://developer.aliyun.com/article/1143617
4 修改gradle版本衍生问题 Unable to find method 'org.gradle.api.file)
即gradle版本不匹配
查看对应关系,修改版本号即可 版本号可查看该参考链接 https://blog.csdn.net/dongxin214/article/details/100726807
参考
https://cloud.tencent.com/developer/article/1755125
7 编译时出现:Unable to resolve dependency for ‘:app@debug/compileClasspath’
主要解决方案:
工程目录 app–>build.gradle 在android{…}下 添加下列代码
allprojects {
repositories {
jcenter()
maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ }
}
}
buildscript {
repositories {
maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’}
}
}
参考
https://blog.csdn.net/persistencegoing/article/details/100726262
8 编译时出现Deprecated Gradle features were used in this build, making it incompatible with Gradle x.0. 解决办法
修改build.gradle文件
allprojects {
buildscript {
repositories {
mavenCentral() //新增
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.4'
}
}
repositories {
mavenCentral()//新增
google()
}
...
}
参考
https://blog.csdn.net/qq_41973169/article/details/129079641
9 编译时出现Cannot use @TaskAction annotation on method TransformTask.transform()
解决办法:
修改gradle版本为7.x.x版本,这里我修改为7.0.2-all
下载gradle镜像链接 : https://mirrors.cloud.tencent.com/gradle/
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
参考
https://blog.csdn.net/wangchenggggdn/article/details/131081227
10 此应用专为旧版Android打造
解决方案:在gradle中调高minSdkVersion
若未解决,博主提供了其他解决方案。
参考
https://blog.csdn.net/u013718730/article/details/94583439
11 gradle7.0以上版本报错Using insecure protocols with repositories, without explicit opt-in, is unsupported.
maven仓库的配置需要引用HTTPS的方式进行;
pluginManagement {
repositories {
maven {
allowInsecureProtocol true # 中间不需要加 = 号 不然不行
url '你的maven地址,需要是https的'
}
}
}
dependencyResolutionManagement {
repositories {
maven {
allowInsecureProtocol true
url '你的maven地址,需要是https的'
}
}
}
参考
https://blog.csdn.net/qq_41998504/article/details/128630418
12 编译时报错Failed to notify build listener.
尝试降低项目gradle的版本
1在build.gradle中
2在gradle-wrapper.properties中
(但我似乎不是这样解决的,忘记了,存疑一下。)
参考
https://blog.csdn.net/shenggaofei/article/details/106597134
13 编译时报错Cause: unable to find valid certification path to requested target
方法1
尝试修改gradle-wrapper.properties的gradle地址
使用腾讯云镜像,gradle-6.6.1-bin.zip换为自己需要的版本
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-6.6.1-bin.zip
方法2
根目录的build文件里加上镜像代码,重新编译
maven{url ‘http://maven.aliyun.com/nexus/content/groups/public/’}
参考
https://blog.csdn.net/c18871189293/article/details/105681103