Nat*_*man 23 android sd-card android-virtual-device android-emulator
我尝试使用以下过程在Kubuntu 17.04中为Jellybean(API 17)创建AVD:
从Android Studio启动AVD Manager
单击"创建虚拟设备"按钮:
选择Nexus 4硬件配置文件:
点击下一步"
单击"x86 Images"选项卡,然后选择"Jelly Bean/17/x86/Android 4.2(使用Google API)"图像:
点击下一步"
将设置保留为默认值:
点击"完成"
现在,由于Ubuntu 17.04(及其衍生产品)的一个不幸问题,单击其条目旁边的播放按钮无法直接启动模拟器.(单击它什么都不做.)相反,我必须从终端启动模拟器:
$ cd ~/Android/Sdk/tools
$ LD_PRELOAD='/usr/$LIB/libstdc++.so.6' ./emulator -avd Nexus_4_API_17
Run Code Online (Sandbox Code Playgroud)
模拟器启动并出现主屏幕:
然而,与它的交互立即显示存在问题.相机显示错误:
单击"设置"应用中的"存储"会导致"设置"应用崩溃.
我做错了什么,如何解决这个问题?
编辑:我点击"显示高级设置"并确认确实要创建一张SD卡:
我也确认该文件~/.android/avd/Nexus_4_API_17.avd/sdcard.img.qcow2存在.
编辑:我按照相同的步骤创建了一个Kit Kat AVD(使用Nexus 5硬件配置文件),但问题并不存在.SD卡按预期工作.
编辑:我尝试使用mksdcard手动创建SD卡图像:
mksdcard -l TEST 100M sdcard.img
Run Code Online (Sandbox Code Playgroud)
...然后将其直接传递给模拟器:
emulator -sdcard sdcard.img -avd [...]
Run Code Online (Sandbox Code Playgroud)
......但这并没有什么区别.
但是,在设备上打开根终端(使用adb shell)并运行mount和df命令后,我发现了一些有趣的东西:
# mount rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 tmpfs /mnt/secure tmpfs rw,relatime,mode=700 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 /dev/block/vda /system ext4 ro,relatime,data=ordered 0 0 /dev/block/vdb /cache ext4 rw,nosuid,nodev,noatime,errors=panic,data=ordered 0 0 /dev/block/vdc /data ext4 rw,nosuid,nodev,noatime,errors=panic,data=ordered 0 0 # df Filesystem Size Used Free Blksize /dev 757M 68K 757M 4096 /mnt/secure 757M 0K 757M 4096 /mnt/asec 757M 0K 757M 4096 /mnt/obb 757M 0K 757M 4096 /system 532M 349M 183M 4096 /cache 60M 40K 60M 4096 /data 1G 75M 1G 4096
看起来好像没有安装SD卡,因为/dev/block/vdd上面的输出中缺少SD卡,并且没有一个分区的容量为100M.
经过一番研究后,我得到一个答案:JellyBean太旧了,无法在最新的模拟器上使用。
如果您想继续使用该系统而又想同时使用sd卡,那么这对您来说是个不错的选择。
手动启动仿真器,如下所示:
cd ~/Android/Sdk/emulator
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' ./emulator @Nexus_4_API_17 -verbose -engine classic
Run Code Online (Sandbox Code Playgroud)
请注意-发动机的经典,将加载旧/经典QEMU内核的kerne-QEMU,而不是新的qemu2内核内核兰寿(可选项有:自动,经典,qemu2)
| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |