设置compileSdk=35后Play Console提示UI相关废弃API警告求助
解决Android 15(SDK35)废弃宽屏API警告的实用方案
升级Material Components依赖版本
你遇到的com.google.android.material.datepicker调用废弃API的问题,大概率是因为Material库版本未适配Android 15。把com.google.android.material:material依赖升级到最新稳定版(比如1.13.0及以上),新版本组件已经替换了废弃的系统API调用。替换代码中废弃的API调用
针对三个废弃API,按以下方式替换:Window.setDecorFitsSystemWindows:
移除代码中的直接调用,改为在应用主题中设置android:windowDecorFitsSystemWindows="false",然后通过WindowInsetsListener处理布局与系统栏的适配,示例代码:window.decorView.setOnApplyWindowInsetsListener { view, insets -> val systemBarsInsets = insets.getInsets(WindowInsets.Type.systemBars()) view.setPadding(systemBarsInsets.left, systemBarsInsets.top, systemBarsInsets.right, systemBarsInsets.bottom) insets }Window.setStatusBarColor/Window.setNavigationBarColor:
优先通过主题属性设置颜色,放弃动态调用:
若需动态修改,改用<style name="AppTheme" parent="Theme.Material3.DayNight.NoActionBar"> <item name="android:statusBarColor">@color/your_status_bar_color</item> <item name="android:navigationBarColor">@color/your_nav_bar_color</item> </style>WindowInsetsController的对应方法:window.insetsController?.setSystemBarsColor(ContextCompat.getColor(this, R.color.your_color))
排查间接依赖的旧库
执行./gradlew app:dependencies查看项目依赖树,检查是否有第三方库间接引入了旧版本的Material或AndroidX库。如果有,在build.gradle中强制指定该库的最新版本,示例:configurations.all { resolutionStrategy.force 'com.google.android.material:material:1.13.0' }处理第三方组件的遗留调用
如果升级Material库后仍存在datepicker的警告,可尝试:- 改用AndroidX原生的
DatePickerDialog替代Material Datepicker - 自定义Datepicker的样式与逻辑,规避废弃API的调用
- 若确认无法自行修复,可在Play Console的警告页面提交说明,标注问题源于第三方库,正在等待版本更新
- 改用AndroidX原生的
内容的提问来源于stack exchange,提问作者Young Lee
相关产品推荐
相关产品推荐

