Gradle拉取失败
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
将Gradle的配置更新为腾讯云镜像
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-8.7-bin.zip
在 build.gradle.kts 添加aar
1,在 app目录下新建libs文件夹,并将aar文件放置该目录下
2,在 build.gradle.kts 的 dependencies 下 引入aar
dependencies {
implementation(files("./libs/*****.aar"))
}
Unsupported Gradle JVM.
当本地的 javaSDK 的版本比较高时,项目使用的gradle版本比较低时,会报如下错误:
Your build is currently configured to use Java 17.0.10 and Gradle 5.4.1.
Possible solutions:
- Upgrade to Gradle 8.5 and re-sync
- Upgrade to Gradle 7.2 and re-sync
解决方法:修改项目的java版本
Android Studio -> setting -> Build,Execution,Deployment -> Build Tools -> Gradle 目录下,修改 Gradle JDK 的版本,即可。
redirect to a secure protocol (like HTTPS) or allow insecure protocols.
需要在maven里添加参数才可以访问http地址。
maven {
allowInsecureProtocol = true
url 'http://xxx.xxx.xxx/repository/public/'
}
Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'flatDir' was added by build file 'app/build.gradle'
新建Android工程,在 build.gradle中引入aar,报如上错误,是因为
在settings.gradle设置了 RepositoriesMode.FAIL_ON_PROJECT_REPOS模式。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
repositoriesMode 模式有两种 :
-
RepositoriesMode.PREFER_PROJECT: 解析依赖库时 , 优先使用本地仓库 , 本地仓库没有该依赖 , 则使用远程仓库 ; -
RepositoriesMode.FAIL_ON_PROJECT_REPOS: 解析依赖库时 , 强行使用远程仓库 , 不管本地仓库有没有该依赖库 ;
所以,我们将仓库的解析模式改下就可以了
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Duplicate class android.support.v4.app..... found in modules core-1.13.0-runtime
这是由于已经导入的依赖中有涵盖相同core版本的情况,最终导致冲突报错,解决这个办法也很简单,找到那个冲突的依赖删掉或者换成其他依赖,但这种方法不建议,使用下面的解决办法可以不需要进行删除冲突依赖同样解决问题。
android.useAndroidX=true
android.enableJetifier=true
当 Support库和AndroidX库含有相同的类时,会引起该错误,开启 enableJetifier 将 Support库迁移至AndroidX从而解决类重复的问题。
Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /xxx/xxx/app/build/outputs/mapping/release/missing_rules.txt.
缺少混淆规则,打开该目录下的miss_rules.txt文件,将里面的混淆规则,复制到 proguard-rules.pro里面即可。
apk打包,包体积异常变大
可以从2方面入手:
1、是否修改最小版本,修改最低版本,会有压缩方面的变化。
2、过滤掉不比较的ndk abi。
具体分析和解决方法,可以参考如下链接 包体积异常变大