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

React Native Expo出现java.lang.SecurityException: No active admin错误如何解决?

解决java.lang.SecurityException: No active admin错误

这个异常通常是代码尝试调用需要设备管理员权限的API,但应用未被激活为设备管理员,或存在不必要的权限/配置导致的。结合你新增本地存储功能的背景,按以下步骤排查:

1. 检查存储依赖的权限与版本

  • 若使用expo-secure-store,打开app.json/app.config.js,确认权限列表中是否误加了MANAGE_DEVICE_ADMINS这类设备管理员相关权限,直接移除。
  • 核对最近两个版本是否升级了Expo SDK或存储类依赖,回退到之前正常版本的SDK测试,排查是否是版本引入的问题。

2. 清理AndroidManifest中的设备管理员配置

  • 执行expo prebuild生成原生项目,打开android/app/src/main/AndroidManifest.xml,查找是否存在<device-admin>标签或绑定设备管理员的<receiver>组件(示例如下),若并非业务必需,直接删除:
    <receiver android:name=".DeviceAdminReceiver"
        android:permission="android.permission.BIND_DEVICE_ADMIN">
        <meta-data android:name="android.app.device_admin"
            android:resource="@xml/device_admin" />
        <intent-filter>
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
        </intent-filter>
    </receiver>
    

3. 定位代码中的异常触发点

  • 从Play Console的错误堆栈中找到具体调用行,全局搜索代码中的DevicePolicyManager、activeAdmin等关键词,确认是否误写了设备管理员相关逻辑,或使用的存储依赖内部调用了这类API。
  • 若为第三方库问题,替换存储实现:比如改用@react-native-async-storage/async-storage,测试是否消除错误。

4. 验证设备端配置

  • 在出现错误的测试设备上,进入「设置 > 安全 > 设备管理员」,确认你的应用是否在候选列表中,若存在,取消激活后重新运行应用。

内容的提问来源于stack exchange,提问作者Fevzi Özçelik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:05:04