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

Expo独立Android应用使用expo-screen-capture遇TypeError求助

解决Expo独立Android应用中expo-screen-capture导入报错问题

问题说明

为Expo应用实现禁止截图功能,安装expo-screen-capture模块后,在独立Android应用中导入usePreventScreenCapture时触发错误:

TypeError: Cannot read property 'expo_module_name' of undefined, js engine: hermes

解决步骤

1. 匹配模块与Expo SDK版本

expo-screen-capture版本必须和当前Expo SDK版本兼容,打开package.json检查对应关系(比如SDK 49对应expo-screen-capture@~12.4.0,SDK 50对应~13.0.4)。版本不匹配时执行:

expo install expo-screen-capture

该命令会自动安装适配当前SDK的模块版本。

2. 重新构建独立Android应用

Expo模块在独立应用中依赖原生代码支持,安装或更新模块后必须重新构建:

eas build --platform android

务必使用新构建的安装包测试,旧包不会包含最新的模块原生代码。

3. 清除缓存重启环境

缓存异常可能导致模块加载失败,执行以下操作:

  • 清除Expo缓存:
    expo r -c
    
  • 若本地有android目录,清除Gradle缓存:
    cd android && ./gradlew clean && cd ..
    

4. 检查Hermes配置

确认app.json或app.config.js中Hermes配置正确:

{
  "expo": {
    "android": {
      "jsEngine": "hermes"
    }
  }
}

若修改过配置,需重新构建应用生效。

5. 验证导入语句

确保导入拼写无错误:

import { usePreventScreenCapture } from 'expo-screen-capture';

6. 临时切换JSC引擎(可选)

若以上方法无效,可暂时切换到JSC引擎排查是否为Hermes兼容问题:
修改app.json:

{
  "expo": {
    "android": {
      "jsEngine": "jsc"
    }
  }
}

重新构建测试,若问题消失,等待Expo或模块更新修复Hermes兼容性。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:47:34