将compileSDKVersion改为33后flutter_inappwebview编译失败
问题原因
Android API 33(对应compileSdkVersion 33)中,WebSettings类的setAppCachePath()和setAppCacheEnabled()方法已被移除,而你使用的flutter_inappwebview:5.4.3+7版本基于旧Android SDK开发,未适配API33的变更,导致编译时找不到这些方法。
解决方案
方案一:升级flutter_inappwebview到兼容版本(推荐)
这是最稳妥的解决方式,新版本插件已适配API33的变更:
- 打开项目根目录下的
pubspec.yaml文件 - 修改
flutter_inappwebview的依赖版本为最新稳定版(例如当前兼容API33的最低版本为6.0+,可按需调整):
dependencies: flutter_inappwebview: ^6.0.0 # 或更高兼容版本
- 执行命令更新依赖:
flutter pub get
- 清理缓存并重新编译:
flutter clean flutter run
方案二:临时修改插件源码(仅应急使用)
如果暂时无法升级插件,可手动注释报错代码,但后续执行flutter pub get会覆盖修改,需注意:
- 定位到报错文件:
C:\flutter\.pub-cache\hosted\pub.dartlang.org\flutter_inappwebview-5.4.3+7\android\src\main\java\com\pichillilorenzo\flutter_inappwebview\in_app_webview\InAppWebView.java - 注释掉所有调用
setAppCachePath()和setAppCacheEnabled()的代码行,示例:
// settings.setAppCachePath(options.appCachePath); // settings.setAppCacheEnabled(false); // settings.setAppCacheEnabled(true); // ... 其他对应报错行
- 重新编译项目:
flutter run
方案三:回退compileSdkVersion到32(仅当设备允许时)
如果目标设备不需要强制使用API33,可暂时回退版本:
- 打开
android/app/build.gradle文件 - 将
compileSdkVersion改回32:
android { compileSdkVersion 32 // ... 其他配置 }
- 重新编译项目:
flutter run
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

