首页 > 解决方案 > java.lang.IllegalStateException: sensorManager.getDefaultSensor(sensorType) 在 Flutter 中不能为 null

问题描述

我已经构建了一个颤振应用程序,该应用程序具有借助颤振罗盘依赖项显示朝拜方向等功能。此应用程序在最新版本的 Android 设备中运行良好,但如果我尝试在旧版本(API 16、API 17)中安装此应用程序,它会显示“不幸的是,此应用程序已停止”。我在 logcat 中检查它显示“java.lang.IllegalStateException:sensorManager.getDefaultSensor(sensorType) 不能为空”。那么我是否需要在 android 文件夹中添加一些本机代码或在 buildgradle 中添加依赖项?

标签: androidandroid-studioflutterdart

解决方案


在 Android 上,flutter_compass 插件使用TYPE_ROTATION_VECTOR传感器类型来访问罗盘传感器。此值是在 Android SDK 20(Android 4.4,KitKat)中添加的。因此,该插件不适用于 KitKat 之前的 Android 版本。

因此,您的选择是在插件的github 页面上提交问题,或者尝试在本机端自己重新创建功能,并修复 KitKat 之前的 Android 版本。


推荐阅读