我曾经用以下方法启动我的Android Studio模拟器
emulator -avd "mydevice" -writable-system
但突然间,现在只有当我删除了它的 -writable-system
选项,否则就会卡在启动标志上。
为什么这个选项会改变开机的结果?
我怎样才能理解发生了什么事,为了解决这个问题,使 -writable-system
选项再次工作?
在最坏的情况下,有什么方法可以在不清除用户数据的情况下重置系统镜像?
最后我自己解决了这个问题......
问题的原因是一个损坏的系统分区。
我去了我的AVD文件夹,并重命名系统镜像文件。system.img.qcow2
变成 BACKUP_system.img.qcow2
我也可以删除它,但你永远不知道)。
然后,一旦我运行仿真器时,选项 -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
选项不使用,而 只读 系统映像,它存储在不同的地方,被加载。
当然,当仿真器需要创建一个新的可写系统分区时(就像在这种情况下),它就会从那个只读系统映像中复制出来。