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

Expo项目在小米Poco M6升级HyperOS后出现DETECT_SCREEN_CAPTURE权限错误

解决小米HyperOS 2.0.3.0(Android 15)下Expo Go的DETECT_SCREEN_CAPTURE权限错误

核心问题分析

小米HyperOS 2.0.3.0基于Android 15,该系统对DETECT_SCREEN_CAPTURE权限管控更严格——此权限属于signature|privileged级别,普通第三方App(如Expo Go)无法通过常规ADB命令直接获取,这是Native模块加载失败、进而引发"main未注册"错误的根本原因。

解决方案

1. 更新Expo Go至最新版本

Expo团队会跟进新Android版本的权限适配,直接前往应用商店或Expo官方渠道安装最新版Expo Go,多数情况下能直接解决该权限兼容问题。

2. 使用Expo Development Build替代Expo Go

如果Expo Go暂未完成适配,可自行构建自定义开发包:

  • 在项目app.json中,给android.permissions数组添加权限声明:
    "android": {
      "permissions": [
        "android.permission.DETECT_SCREEN_CAPTURE",
        // 保留项目原有其他权限
      ]
    }
    
  • 运行构建命令生成开发版APK:
    eas build --profile development --platform android
    
  • 将生成的APK安装到手机,自定义开发包可正常申请并获取该权限。

3. 修正ADB授权命令(针对Expo Go)

若坚持使用Expo Go,尝试用正确包名执行ADB授权:

  • 先开启手机开发者选项中的「USB调试(安全设置)」
  • 执行授权命令:
    adb shell pm grant expo.modules.exponent android.permission.DETECT_SCREEN_CAPTURE
    
    (注:Expo Go正式包名为expo.modules.exponent,之前授权失败大概率是包名错误)

4. 临时禁用屏幕捕获相关模块

如果项目中使用了expo-screen-capture等依赖该权限的模块,可暂时移除相关代码或禁用模块功能,先确保项目能正常启动,待Expo Go适配完成后再恢复。

附带解决"main未注册"错误

该错误是权限问题导致Native模块加载失败的连锁反应,解决权限问题后通常会自动消失。若仍存在:

  • 清除Metro缓存并重启服务器:
    npx expo start --clear
    
  • 确认Metro服务器在项目根目录启动,避免路径错误。

内容的提问来源于stack exchange,提问作者httperror505

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:42:16