You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将compileSDKVersion改为33后flutter_inappwebview编译失败

问题原因

Android API 33(对应compileSdkVersion 33)中,WebSettings类的setAppCachePath()和setAppCacheEnabled()方法已被移除,而你使用的flutter_inappwebview:5.4.3+7版本基于旧Android SDK开发,未适配API33的变更,导致编译时找不到这些方法。

解决方案

方案一:升级flutter_inappwebview到兼容版本(推荐)

这是最稳妥的解决方式,新版本插件已适配API33的变更:

  1. 打开项目根目录下的pubspec.yaml文件
  2. 修改flutter_inappwebview的依赖版本为最新稳定版(例如当前兼容API33的最低版本为6.0+,可按需调整):
dependencies:
  flutter_inappwebview: ^6.0.0 # 或更高兼容版本
  1. 执行命令更新依赖:
flutter pub get
  1. 清理缓存并重新编译:
flutter clean
flutter run

方案二:临时修改插件源码(仅应急使用)

如果暂时无法升级插件,可手动注释报错代码,但后续执行flutter pub get会覆盖修改,需注意:

  1. 定位到报错文件: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
  2. 注释掉所有调用setAppCachePath()和setAppCacheEnabled()的代码行,示例:
// settings.setAppCachePath(options.appCachePath);
// settings.setAppCacheEnabled(false);
// settings.setAppCacheEnabled(true);
// ... 其他对应报错行
  1. 重新编译项目:
flutter run

方案三:回退compileSdkVersion到32(仅当设备允许时)

如果目标设备不需要强制使用API33,可暂时回退版本:

  1. 打开android/app/build.gradle文件
  2. 将compileSdkVersion改回32:
android {
    compileSdkVersion 32
    // ... 其他配置
}
  1. 重新编译项目:
flutter run

内容的提问来源于stack exchange,提问作者Deepak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 16:36:22