Flutter TeXView(WebView)在安卓模拟器中无法渲染问题求助
问题根因定位
你遇到的错误核心是日志末尾的Uncaught ReferenceError: initView is not defined报错,说明flutter_tex依赖的WebView组件没有正常加载内置的公式渲染HTML资源,而是加载了错误的空白页,所以仅能显示加载状态的绿线,无法渲染公式。
解决方案
- 检查Android清单文件配置
打开android/app/src/main/AndroidManifest.xml,在<application>标签添加android:usesCleartextTraffic="true"属性,flutter_tex使用本地HTTP服务托管渲染资源,Android9及以上默认禁止明文流量会导致资源加载失败。配置示例:<application android:name="io.flutter.app.FlutterApplication" android:label="你的应用名" android:icon="@mipmap/ic_launcher" android:usesCleartextTraffic="true"> <!-- 新增这行 --> - 更新模拟器WebView版本
你当前使用的x86模拟器搭载的WebView版本为83.0.4103.106,属于较老版本,存在JS接口兼容性问题。进入模拟器设置→应用→找到「Android System WebView」,更新到最新版本后重启模拟器重试。 - 调整代码初始化顺序
不要在页面initState阶段直接传入公式内容,要监听TeXView的就绪事件后再设置渲染内容,示例代码:TeXView( onRenderFinished: () { // 渲染引擎就绪后再设置公式内容 }, child: TeXViewDocument(r"""你要渲染的公式内容"""), ) - 清理项目缓存重试
依次执行以下命令清理缓存后重新运行:flutter clean flutter pub get - 真机验证
直接用Android真机运行项目,如果真机可以正常渲染,即可确认问题为模拟器自身WebView的兼容性缺陷,不影响线上打包发布。
内容的提问来源于stack exchange,提问作者BastiTri
相关产品推荐
相关产品推荐

