引入webview_flutter编译报错,关于compileSdkVersion升级的疑问
webview_flutter编译SDK版本冲突解决及兼容性说明
升级compileSdkVersion到32后,是否支持系统版本31及以下设备?
完全支持。这里要明确三个SDK版本参数的核心作用:
- compileSdkVersion:仅用于编译阶段的SDK版本,决定你能调用哪些最新API,但不会限制应用在低版本设备上运行。只要代码没有调用32及以上独有的API,或对高版本API做了兼容处理,31及以下的设备都能正常运行。
- minSdkVersion:这才是决定应用最低支持的系统版本,只要这个值≤设备系统版本(比如你设置的20),31的设备完全可以正常运行应用。
- targetSdkVersion:控制应用适配的目标系统版本,影响系统权限、行为逻辑等规则,但不决定设备能否运行应用。
如何解决当前的编译错误?
你遇到的问题根源是webview_flutter依赖的androidx.webkit:webkit:1.5.0要求编译时使用SDK 32或更高,而你的项目当前使用的compileSdkVersion是31(来自flutter.compileSdkVersion的默认值)。修改minSdkVersion或者更换webview_flutter版本无法解决这个问题,正确处理方式如下:
直接在android/app/build.gradle中指定compileSdkVersion为32,覆盖flutter的默认配置:
android { compileSdkVersion 32 // 替换原来的flutter.compileSdkVersion ndkVersion flutter.ndkVersion defaultConfig { minSdkVersion 20 // 保持符合webview_flutter要求的最低版本即可 targetSdkVersion flutter.targetSdkVersion // ...其他原有配置 } // ...其他原有配置 }
修改完成后重新执行编译,错误即可消除。
内容的提问来源于stack exchange,提问作者Chris Bornhoft
相关产品推荐
相关产品推荐

