MacBook M1下Cake ADB执行AdbInstall报空引用错误如何解决
问题根因
你遇到的空引用报错本质是Cake.Android.Adb插件未找到本地Android SDK中的adb可执行文件路径,插件内部未做空值防护直接抛出了NullReferenceException。
修复步骤
1. 配置Android SDK路径到系统环境变量
M1 Mac默认安装的Android SDK路径为~/Library/Android/sdk,adb工具存放在SDK下的platform-tools目录中。
你需要修改对应Shell的配置文件:使用zsh则编辑~/.zshrc,使用bash则编辑~/.bash_profile,添加如下配置:
export ANDROID_HOME=~/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools
配置完成后执行source ~/.zshrc(对应你使用的Shell),执行adb --version验证是否能正常输出版本信息,确认adb路径生效。
如果是自定义安装的Android SDK,替换上述配置为实际的SDK路径即可。
2. Cake脚本显式指定adb路径(可选,更稳妥)
如果环境变量配置后仍有识别问题,可以直接在Cake脚本中手动指定adb的绝对路径,修改AdbInstall调用逻辑:
AdbInstall(apkFile: androidApk, new AdbToolSettings { // 替换为你本地实际的adb路径 ToolPath = "/Users/你的用户名/Library/Android/sdk/platform-tools/adb" });
3. 多模拟器分别安装配置
路径问题解决后,你可以先执行adb devices获取两个模拟器的设备序列号,安装时通过参数指定目标设备即可实现分别安装到LTR、RTL模拟器:
// 示例中emulator-5554为LTR模拟器序列号,emulator-5556为RTL模拟器序列号,替换为你实际的设备序列号即可 // 安装到LTR模拟器 AdbInstall(apkFile: androidApk, new AdbToolSettings { Serial = "emulator-5554" }); // 安装到RTL模拟器 AdbInstall(apkFile: androidApk, new AdbToolSettings { Serial = "emulator-5556" });
版本说明
你当前使用的3.2.0版本Cake.Android.Adb插件在M1 Mac上不存在兼容问题,不需要升级版本,解决adb路径识别问题即可正常运行。
内容的提问来源于stack exchange,提问作者subKiller
相关产品推荐
相关产品推荐

