1、插件版本
gradle:8.9
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.9-bin.zip
tools:8.6.0
dependencies {
classpath 'com.android.tools.build:gradle:8.6.0'
}
2、namespace适配
android15版本开始,多模块开发,需要强制在各模块指定namespace(包名),而不是在AndroidManifest.xml上命名。
android {
compileSdkVersion 35
defaultConfig {
namespace "包名"
minSdkVersion 26
targetSdkVersion 35
consumerProguardFiles 'consumer-proguard-rules.pro'
}
3、R资源引用适配
从Android15开始,google希望R资源的引用都带上包名,为了实现不同模块可以取相同资源名称,从而区分。做适配的话,工作量太大,所以暂时禁用掉。
org.gradle.caching=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false
4、R8混淆
Android15,加强了混淆检查,会导致很多奇奇怪怪的错误,例如数据请求框架强转错误,一些bean类报错,建议取消掉全混淆检查。
android.enableR8.fullMode=false
5、edge-to-edge风格
在Android 15设备上,targetSDK>=Android15的应用将强制进行全屏展示,并且状态和导航栏将保持透明化当在Android15平台上之前使用的设置系统栏颜色的API将被弃用,包括setNavigationBarColor,setNavigationBarColor,即便使用这些方法设置了,系统也将默认保持沉浸式的体验。
所以我们得页面要适配这种页面风格了,但是工作量太大,google提供了一个方法,可以暂时在这个版本禁用掉这个风格。这个方法,大概率后续版本会弃用,所以及早开始适配吧。。。
主题风格将windowOptOutEdgeToEdgeEnforcement设置为false。
<style name="AppThemeNoEdge" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
</style>
6、读写权限变更(Android13变更)
该变更是在Android13上进行变更的,但是我适配的项目是远古版本,所以也记录一下。
Android 13系统废弃了READ_EXTERNAL_STORAGE权限,新增了READ_MEDIA_IMAGES、READ_MEDIA_VIDEO和READ_MEDIA_AUDIO这3个新的运行时权限,分别用于控制App对照片、视频、音频的访问。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
if (checkSelfPermission(Manifest.permission.READ_MEDIA_IMAGES) != PackageManager.PERMISSION_GRANTED) {
list.add(Manifest.permission.READ_MEDIA_IMAGES);
}
}else {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
list.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
}
5864

被折叠的 条评论
为什么被折叠?



