React Native中Detox测试报错:目录无adb可执行文件求助
React Native Detox测试报错:找不到adb可执行文件
问题描述
我在MacBook上开发React Native应用,Android环境配置完成且能正常在模拟器运行应用,但执行Detox测试时遇到错误:
DetoxRuntimeError: There was no "adb" executable file in directory
当前.zshrc中的Android环境配置:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home export ANDROID_HOME=/Users/sagar/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools export ANDROID_SDK_ROOT=~/Library/Android/sdk
Adb版本信息:
adb --version Android Debug Bridge version 1.0.41 Version 34.0.5-10900879 Installed as /usr/local/bin/adb Running on Darwin 23.5.0 (x86_64)
解决方案
1. 确保环境变量生效并包含adb路径
- 执行
source ~/.zshrc让配置立即生效,重启终端后重新运行Detox测试。 - 检查当前PATH是否包含adb所在目录:执行
echo $PATH,确认/usr/local/bin或$ANDROID_HOME/platform-tools在列表中。如果/usr/local/bin不在,直接添加到PATH并写入.zshrc:export PATH=$PATH:/usr/local/bin
2. 在Detox配置中直接指定adb路径
修改Detox配置文件(如detox.config.js或package.json的detox字段),明确adb的绝对路径:
module.exports = { configurations: { android: { binaryPath: 'android/app/build/outputs/apk/debug/app-debug.apk', build: 'cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug', device: { adbBinaryPath: '/usr/local/bin/adb' } } } };
3. 同步platform-tools中的adb文件
确认$ANDROID_HOME/platform-tools下是否有adb:
ls /Users/sagar/Library/Android/sdk/platform-tools/adb
如果存在但Detox无法识别,可将其替换为当前可用adb的软链接:
rm /Users/sagar/Library/Android/sdk/platform-tools/adb ln -s /usr/local/bin/adb /Users/sagar/Library/Android/sdk/platform-tools/adb
4. 验证Detox加载的环境变量
运行Detox时开启调试,查看环境变量是否包含adb路径:
detox test --debug-sync
在输出中查找PATH相关内容,确认adb所在目录已被加载。
内容的提问来源于stack exchange,提问作者Sagar H
相关产品推荐
相关产品推荐

