Flutter项目升级Android SDK至34后遇问题,求解决方案
Android SDK 33升级到34后问题解决步骤
以下是升级后常见问题的针对性解决办法,覆盖大部分场景:
新增权限适配
SDK 34要求显式声明POST_NOTIFICATIONS权限,否则通知功能会失效。在AndroidManifest.xml中添加:<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />同时在代码中针对Android 14及以上版本动态申请该权限,调用
Activity.requestPermissions()即可。废弃/变更API修复
检查代码中使用的过时API:Context.bindService()在后台调用会触发异常,需移至前台生命周期(比如Activity.onStart())内执行Intent.FLAG_ACTIVITY_NEW_TASK搭配startActivity()时,需确保调用方处于前台,否则改用通知跳转
依赖版本同步
升级SDK后必须同步相关工具和依赖版本:- 把项目级
build.gradle中的com.android.tools.build:gradle升级到8.0+ - 模块级
build.gradle中,将compileSdkVersion、targetSdkVersion统一设为34,minSdkVersion根据业务需求调整
- 把项目级
Manifest合并冲突处理
查看Build窗口的合并日志,若出现第三方库的权限、组件声明冲突,可通过tools:replace强制覆盖,比如:<activity android:name=".MainActivity" tools:replace="android:exported" />Android 14行为变更适配
针对系统行为限制调整代码:- 后台启动Activity的场景全部替换为通知跳转,避免触发
SecurityException - 确保APK签名使用v2/v3签名方案,Android 14对旧签名支持有限
- 后台启动Activity的场景全部替换为通知跳转,避免触发
内容的提问来源于stack exchange,提问作者Olasoji Oluwadamilola
相关产品推荐
相关产品推荐

