Capacitor运行Android报ERR_SDK_PACKAGE_NOT_FOUND错误如何解决
Capacitor Android SDK路径配置问题解决方案
错误说明
你遇到的部署报错如下:
× Deploying app-debug.apk to Pixel_3_API_30 - failed!
[error] ADBs is unresponsive after 5000ms, killing server and retrying...
ERR_SDK_PACKAGE_NOT_FOUND: SDK package not found by location:
D:\Android_SDK_HOME\platform-tools.
该错误由Capacitor调用的底层部署工具native-run触发,核心原因是工具读取的Android SDK路径和你本地实际路径不匹配。
SDK路径读取优先级
native-run按照以下顺序读取SDK路径,只要匹配到有效路径就会停止向下查找:
- 项目根目录下
capacitor.config.ts/capacitor.config.json中配置的android.sdkPath字段 - 系统环境变量
ANDROID_HOME的值 - 系统环境变量
ANDROID_SDK_ROOT的值
注意:你之前配置的ANDROID_SDK_HOME属于Android官方已废弃的环境变量,native-run不会读取该变量的值,因此修改后不生效。
正确配置步骤
两种方案二选一即可,推荐优先使用方案1,不会受全局环境变量冲突影响:
方案1:Capacitor项目内指定SDK路径
打开项目根目录的Capacitor配置文件,添加SDK路径配置:
- 若使用
capacitor.config.ts:
import { CapacitorConfig } from '@capacitor/cli'; const config: CapacitorConfig = { // 保留你的其他原有配置项 android: { sdkPath: 'D:\\Android_SDK_HOME\\Sdk' } }; export default config;
- 若使用
capacitor.config.json:
{ // 保留你的其他原有配置项 "android": { "sdkPath": "D:\\Android_SDK_HOME\\Sdk" } }
方案2:修正全局系统环境变量
- 删除已设置的
ANDROID_SDK_HOME环境变量,避免冲突 - 新增
ANDROID_HOME环境变量,值设为D:\Android_SDK_HOME\Sdk - 新增
ANDROID_SDK_ROOT环境变量,值和ANDROID_HOME保持一致 - 打开系统Path变量,添加以下4个路径:
%ANDROID_HOME%\platform-tools%ANDROID_HOME%\tools%ANDROID_HOME%\tools\bin%ANDROID_HOME%\emulator
- 配置完成后必须重启所有正在运行的终端、IDE,否则新环境变量不会生效
配置验证
新开终端执行adb --version,确认能正常输出版本信息后,重新运行npx cap run android即可正常部署应用。
内容的提问来源于stack exchange,提问作者nagychris
相关产品推荐
相关产品推荐

