序言
最近將Gradle從4.1.1 升級到 8.6.0 遇到了很多坑
升級gradle
1. 修改根目錄的build.gradle
dependencies{
? ? ? ? classpath'com.android.tools.build:gradle:8.6.0'
? ? }
2. 修改gradle-wrapper.properties
distributionUrl=file\:///D\:/androidtools/gradle/gradle-8.7-all.zip
3.每個模塊添加namespace,是模塊的包名
4.compileSdkVersion改為34
報錯
1.switch語句報錯Constant expression required
解決方案:添加配置
在gradle.properties配置文件下添加如下代碼即可解決
android.nonFinalResIds=false
鏈接:https://blog.csdn.net/mjh1667002013/article/details/134763804
2.主module不能引用子module資源文件
解決方案:
只需要在gradle.properties進(jìn)行如下設(shè)置:
android.nonTransitiveRClass=false
鏈接:https://blog.csdn.net/github_34790294/article/details/125269067
3.Android 混淆打包后gson報錯Missing type parameter
解決方案:
在proguard-rules.pro文件添加下面的混淆規(guī)則即可解決
-keep,allowobfuscation,allowshrinkingclasscom.google.gson.reflect.TypeToken-keep,allowobfuscation,allowshrinkingclass*extendscom.google.gson.reflect.TypeToken
鏈接:https://www.cnblogs.com/stars-one/p/17852140.html
4.Android BuildConfig不生成的解決辦法
解決方案:
在buildFeatures配置中把buildConfig值手動設(shè)為true,重新build下就好了
buildFeatures{
? ? buildConfig=true
}
鏈接:https://blog.csdn.net/yuzhiqiang_1993/article/details/130431271