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

添加工作配置文件后Expo安卓应用无法安装的解决咨询

解决Expo React Native在多用户Android设备上的构建权限问题

问题背景

基于Expo的React Native应用在单用户Android设备上运行正常,但在三星S20添加工作配置文件后,执行expo run:android时出现权限错误。通过adb shell pm list packages复现问题时,报错提示Shell无权限访问用户10,设备当前存在三个运行中的用户:

Users:
        UserInfo{0:MyUsername:c13} running
        UserInfo{10:Work profile:1030} running
        UserInfo{150:Secure Folder:10021030} running

已知单独执行adb shell pm list packages --user 0可正常运行,但不清楚如何将--user 0参数传递给Expo构建流程。

解决方案

方法1:通过环境变量指定adb用户

Expo支持通过ANDROID_ADB_USER环境变量指定adb操作的用户ID,直接在执行命令时添加该变量即可:

Linux/macOS:

ANDROID_ADB_USER=0 expo run:android

也可以修改package.json中的scripts,以后直接运行npm run android:

"scripts": {
  "android": "ANDROID_ADB_USER=0 expo run:android",
}

Windows:

set ANDROID_ADB_USER=0 && expo run:android

修改scripts:

"scripts": {
  "android": "set ANDROID_ADB_USER=0 && expo run:android",
}

方法2:配置adb默认使用用户0

修改adb的全局配置,让它默认以用户0执行操作:

  1. 创建或编辑adb配置文件:
    • Linux/macOS:~/.android/adb_config.ini
    • Windows:%USERPROFILE%\.android\adb_config.ini
  2. 在文件中添加一行:
    adb_user=0
    
  3. 重启adb服务:
    adb kill-server && adb start-server
    

之后再执行expo run:android就会自动使用用户0,无需每次指定参数。

方法3:切换到个人用户后再执行构建

先通过adb切换到个人用户(用户0),再运行Expo构建命令:

adb shell am start-user 0
expo run:android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:15:29