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

如何解决npx expo start运行React Native安卓真机权限错误

在安卓物理设备运行Expo React Native应用时的权限错误解决方法

问题描述

使用npx expo start命令在安卓物理设备上运行React Native应用时,出现Shell无权限访问用户150的SecurityException错误。

错误信息

Error: Exception occurred while executing 'list':
java.lang.SecurityException: Shell does not have permission to access user 150
 com.android.server.am.ActivityManagerService.handleIncomingUser:14888 android.app.ActivityManager.handleIncomingUser:4802 com.android.server.pm.PackageManagerShellCommand.translateUserId:3510
        at com.android.server.am.UserController.handleIncomingUser(UserController.java:2672)
        at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:14888)
        at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:4802)
        at com.android.server.pm.PackageManagerShellCommand.translateUserId(PackageManagerShellCommand.java:3510)
        at com.android.server.pm.PackageManagerShellCommand.runListPackages(PackageManagerShellCommand.java:969)
        at com.android.server.pm.PackageManagerShellCommand.runListPackages(PackageManagerShellCommand.java:865)
        at com.android.server.pm.PackageManagerShellCommand.runList(PackageManagerShellCommand.java:724)
        at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:226)
        at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
        at android.os.ShellCommand.exec(ShellCommand.java:38)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:7038)
        at android.os.Binder.shellCommand(Binder.java:1085)
        at android.os.Binder.onTransact(Binder.java:903)
        at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4962)
        at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:7022)
        at android.os.Binder.execTransactInternal(Binder.java:1321)
        at android.os.Binder.execTransact(Binder.java:1280)

解决方法

  • 切换到设备主用户:当前adb连接的是子用户(user 150),直接在设备上切换回主用户(通常是user 0),再重新运行npx expo start。
  • 重启adb服务:在终端依次执行以下命令,重置adb连接:
    adb kill-server
    adb start-server
    
    之后重新连接设备并运行expo命令。
  • 确认USB调试授权:检查设备是否弹出了USB调试授权窗口,勾选“始终允许此计算机”并点击允许,确保电脑获得设备的调试权限。
  • 命令行切换到主用户:如果无法手动切换设备用户,在终端执行以下命令切换到主用户:
    adb shell am switch-user 0
    
    完成后重新运行expo启动命令。
  • 重置USB调试授权:进入设备的开发者选项,找到“撤销USB调试授权”选项并点击,然后重新连接电脑,再次授权调试权限,之后尝试运行应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:05:01