android - java.lang.IllegalStateException: sensorManager.getDefaultSensor(sensorType) 在 Flutter 中不能为 null
问题描述
我已经构建了一个颤振应用程序,该应用程序具有借助颤振罗盘依赖项显示朝拜方向等功能。此应用程序在最新版本的 Android 设备中运行良好,但如果我尝试在旧版本(API 16、API 17)中安装此应用程序,它会显示“不幸的是,此应用程序已停止”。我在 logcat 中检查它显示“java.lang.IllegalStateException:sensorManager.getDefaultSensor(sensorType) 不能为空”。那么我是否需要在 android 文件夹中添加一些本机代码或在 buildgradle 中添加依赖项?
解决方案
在 Android 上,flutter_compass 插件使用TYPE_ROTATION_VECTOR
传感器类型来访问罗盘传感器。此值是在 Android SDK 20(Android 4.4,KitKat)中添加的。因此,该插件不适用于 KitKat 之前的 Android 版本。
因此,您的选择是在插件的github 页面上提交问题,或者尝试在本机端自己重新创建功能,并修复 KitKat 之前的 Android 版本。
推荐阅读
- html - 始终在页面上居中标题、输入和提交按钮
- javascript - Javascript 可以将整数视为数组吗?
- java - 使用java servlet时SQL错误无效列
- javascript - 如何在 javascript 中生成 3 个不同(唯一)的数字?
- node.js - 为相同的登录请求获取 3 个输出
- html - 随着半径的增加,如何实现边框变亮?
- google-admin-sdk - Google Drive 的 Google admin sdk 不返回最新结果
- css - CSS Grid - 删除底部多余的行
- javascript - 如何返回 axios get value 而不是 [object Promise]?
- kubernetes - 需要编辑 pod 以允许在不更改 netpol 的情况下与其他 pod 通信