0

我曾经使用启动我的 Android Studio 模拟器

emulator -avd "mydevice" -writable-system

但突然之间,它只有在我删除该-writable-system选项时才有效,否则它会卡在启动徽标上。

为什么该选项会改变引导的结果?

我怎样才能理解发生了什么,以便解决这个问题并使该-writable-system选项再次起作用?

在最坏的情况下,有没有办法在不删除用户数据的情况下重置系统映像?

4

1 回答 1

5

最后我自己解决了这个问题...

问题的原因是系统分区损坏。

我进入了我的 AVD 文件夹并将系统映像文件重命名system.img.qcow2BACKUP_system.img.qcow2(我也可以删除它,但你永远不知道)。

然后,一旦我用 option 运行模拟器-writable-system,因为它再也找不到系统映像文件,所以它创建了一个新的,现在可以再次在系统分区上写入。

这也让我避免了擦除用户数据分区,因此我保存了数据,就像没有发生任何坏事一样。

-writable-system没有选项它仍然工作的原因:

当我删除system.img.qcow2文件时,最初我尝试在没有-writable-system. 再次,它工作了......并且没有生成新的系统映像文件

我试图对此进行调查,并且在运行时:

emulator -help-disk-images

我注意到它说:

If you use a virtual device, its content directory should store
all writable images, and read-only ones will be found from the
corresponding platform/add-on directories.

所以这就是为什么模拟器在没有该-writable-system选项的情况下仍然可以工作,尽管系统映像文件已损坏。这是因为这是一个可写的图像文件,所以如果-writable-system不使用该选项,则不会加载它,而是加载存储在不同位置的只读系统图像。

当然,当模拟器需要创建一个新的可写系统分区(如本例中)时,它会从该只读系统映像中复制它。

于 2020-05-03T07:37:21.203 回答