Android命令行工具启动模拟器报ANDROID_SDK_ROOT路径损坏求原因
问题根因
- AVD配置中相对路径的解析基准错误
你使用-p参数指定了AVD的自定义存储路径(非系统默认的%USERPROFILE%\.android\avd路径),emulator加载AVD配置时,会以当前AVD的config.ini所在目录(也就是C:\Users\EBERTGU\Desktop\kit-emulator\avd\a350\)作为基准目录拼接相对路径,初始配置的image.sysdir.1=android-sdk\system-images\android-30\google_apis\x86_64\拼接后得到的实际路径是C:\Users\EBERTGU\Desktop\kit-emulator\avd\a350\android-sdk\system-images\android-30\google_apis\x86_64\,这个路径并不存在,因此触发路径损坏报错。 ANDROID_SDK_ROOT环境变量的作用范围不覆盖AVD内部配置的路径解析
该环境变量的作用是让emulator找到SDK自身的核心组件(如emulator二进制文件、platform-tools工具包等),并不会被用来作为AVD配置中相对路径的拼接基准,因此哪怕你配置了正确的变量值,也无法解决相对路径拼接错误的问题。
规避方案
如果后续还要创建自定义路径的AVD,可以采用两种方案避免同类问题:
- 创建完成后手动修改
config.ini中的image.sysdir.1配置为系统镜像的绝对路径 - 不指定
-p参数使用默认路径存储AVD,avdmanager会自动生成适配默认路径规则的配置,无需手动修改
内容的提问来源于stack exchange,提问作者Shindra
相关产品推荐
相关产品推荐

