Android Studio不能启动模拟器原因探秘 The emulator process for AVD xxx has terminated

文章背景

在Android Studio中创建模拟器后,启动模拟器时弹出提示“The emulator process for AVD Pixel_2_API_31 has terminated”,但是并没有显示具体错误描述不能启动的原因是什么,没法针对性的采取措施。搜索了网上的一圈文章,有些解决方法是试探性的,比如将模拟器CPU类型由x86_64改为x86,移动模拟器的位置,一个方法不行就换下一个,这不是我想要的。

定位问题


打开模拟器目录下的emu-launch-params.txt文件,内容如下

I:\Program Files\android-studio\jre\bin
I:\AOSP\AndroidSdk\emulator\emulator.exe
11
I:\AOSP\AndroidSdk\emulator\emulator.exe
-netdelay
none
-netspeed
full
-avd
Pixel_2_API_31
-qt-hide-window
-grpc-use-token
-idle-grpc-timeout
300

按照上文的方法将所有内容放在一行内,到命令行中运行
因为我的第一个路径含有空格,在命令行中运行报错,加上双引号也不行,直接使用cd命令进入I:\Program Files\android-studio\jre\bin,然后执行后面的命令,提示invalid command-line parameter: 11,去掉I:\AOSP\AndroidSdk\emulator\emulator.exe 11后再次执行,提示

Not enough space to create userdata partition. Available: 4806.953125 MB at C:\Users\用户名.android\avd\Pixel_2_API_31.avd, need 7372.800000 MB.

现在明白了模拟器不能启动的原因是C盘空间不够,那接下来就简单了,可以采取把模拟器移到其他磁盘的方案了,具体如下:

 进入C盘截图显示页面找到 .android文件夹,这个是模拟器默认下载位置

在这里插入图片描述
剪切.android文件夹,粘贴到其他文件夹(切记不可中文路径),例如像我这样放到D盘自己创建的Android SDK文件夹

 在这里插入图片描述
这里我们进入 .android/avd/以截图中Pixel_2_API_30.avd为例,修改对应的Pixel_2_API_30.ini文件

在这里插入图片描述 配置用户环境变量

在这里插入图片描述

在这里插入图片描述 重启android studio
 

### 解决方案概述 在Android Studio中遇到AVD模拟器启动失败的问题可能由多种原因引起,例如ADB未正确配置、环境变量缺失、磁盘空间不足或虚拟化技术未启用等。以下是针对常见问题的具体分析和解决方案。 --- #### 1. **确认ADB路径是否正确** 如果系统提示`zsh: command not found: adb`[^1],说明当前环境中缺少ADB工具或者其路径未被正确设置。可以通过以下方法解决问题: - 验证SDK平台工具目录是否已添加到系统的PATH环境变量中。 ```bash echo $PATH | grep android ``` - 如果未找到相关路径,则手动将其加入: ```bash export PATH=$PATH:/path/to/android-sdk/platform-tools ``` --- #### 2. **检查设备连接状态** 当执行`adb devices`命令时返回`no devices/emulators found` 或者 `Operation timed out`[^3] ,这表明模拟器未能成功初始化网络通信。可以尝试以下操作来修复此问题: - 使用参数重新启动模拟器以优化性能并减少延迟: ```bash emulator -netdelay none -netspeed full -avd Your_AVD_Name ``` - 若仍然存在超时现象,考虑增加等待时间限制至更长时间(如60秒以上),通过编辑`.ini`文件实现: ```properties hw.keyboard=yes disk.dataPartition.size=800M avd.ini.encoding=UTF-8 image.sysdir.1=system-images/android-29/google_apis/x86/ showDeviceFrame=true fastboot.chosenSnapshotFile= runtime.network.latency=none runtime.network.speed=full sdcard.path=/home/user/.android/avd/Nexus_S_API_23.avd/sdcard.img skin.dynamic=false skin.name=nexus_s skin.path=_layout/nexus_s snapshot.present=no tag.display=Google APIs tag.id=google_apis vm.heapSize=256 abi.type=x86 target=android-29 ``` --- #### 3. **调整存储位置与权限** 有时由于默认存储路径占用过多资源或其他因素影响正常加载速度,可按照如下方式更改存放地址[^4]: - 将整个AVD移动到其他分区下新建的专用目录里; - 修改对应INI记录中的相对路径字段(`path`)指向新的实际物理位置; 注意保持原有结构不变的同时更新关联链接关系即可完成迁移过程而无需重复下载镜像包等内容物项。 --- #### 4. **排查硬件加速支持情况** 对于某些特定机型来说开启VT-x功能可能是必要的前提条件之一[^5]: - 进入BIOS界面查找处理器相关选项开关; - 启用Intel Virtualization Technology (VT-x); - 安装HAXM组件作为底层支撑框架; 上述措施有助于提升仿真效果从而避免频繁崩溃退出状况发生. --- ```python def check_adb(): import subprocess try: result = subprocess.run(['adb', 'devices'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = result.stdout.decode('utf-8') if "device" in output or "emulator-" in output: print("A device is connected.") else: raise Exception("No Devices Found!") except FileNotFoundError as e: print(f"Adb Command Not Found! {e}") check_adb() ``` ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值