Flutter ar_core_plugin无法运行,编译报错求助
解决Flutter arcore_flutter_plugin编译错误问题
错误原因分析
从报错信息看,核心问题是插件版本(0.0.11)过于陈旧,与当前使用的Flutter版本不兼容,具体体现在:
ArCoreViewFactory类未正确实现新版PlatformViewFactory的抽象方法,现有create方法签名不匹配ArcoreFlutterPlugin中存在空安全类型不兼容问题,Activity?无法直接赋值给Activity类型变量
解决方案
方案1:升级插件到兼容版本
- 打开项目的
pubspec.yaml文件,找到arcore_flutter_plugin的依赖项,替换为最新兼容版本(优先推荐) - 执行命令更新依赖:
注:如果官方原插件已停止维护,可以尝试使用社区维护的fork版本。flutter pub get
方案2:手动修改插件源码适配当前Flutter版本
如果找不到合适的升级版本,可以直接修改本地缓存的插件代码:
- 打开路径
C:\src\flutter\flutter\.pub-cache\hosted\pub.dartlang.org\arcore_flutter_plugin-0.0.11\android\src\main\kotlin\com\difrancescogianmarco\arcore_flutter_plugin\下的ArCoreViewFactory.kt:- 将
create方法的签名修改为匹配父类的抽象方法:override fun create(context: Context?, viewId: Int, args: Any?): PlatformView { return ArCoreView(context!!, viewId, registrar, args) }
- 将
- 同路径下打开
ArcoreFlutterPlugin.kt,定位到第32行:- 处理空安全问题,修改为:
val activity = registrar.activity() ?: throw IllegalStateException("无法获取Activity实例")
- 处理空安全问题,修改为:
- 重新执行编译命令:
flutter run
方案3:降级Flutter版本到插件兼容版本
如果不想修改代码,可以将Flutter降级到该插件发布时兼容的版本(比如Flutter 2.x早期版本):
- 执行降级命令(替换
<version>为具体版本号):flutter downgrade <version> - 重新编译项目。
内容的提问来源于stack exchange,提问作者Huzafa Abbasi
相关产品推荐
相关产品推荐

