我尝试在android sdk模拟器(mac)中使用浏览器,但打开后一直崩溃。只要我用4.4。我什至无法输入网址。我可以检查一些日志以找出问题所在吗?我在两台机器上尝试过,都出现相同的错误。
这里是初始化日志:
emulator -avd AVD_for_Nexus_S_by_Google -debug-init
emulator: found SDK root at /usr/local/Cellar/android-sdk/22.3
emulator: Android virtual device file at: /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.ini
emulator: virtual device content at /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd
emulator: virtual device config file: /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/config.ini
emulator: using core hw config path: /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/hardware-qemu.ini
emulator: Found AVD target API level: 19
emulator: 'magic' skin format detected: 480x800
emulator: autoconfig: -skin 480x800
emulator: autoconfig: -skindir (null)
emulator: keyset loaded from: /Users/tobi/.android/default.keyset
emulator: found SDK root at /usr/local/Cellar/android-sdk/22.3
emulator: trying to load skin file '/usr/local/Cellar/android-sdk/22.3/tools/lib/emulator/skins/dynamic//layout'
emulator: loaded dynamic skin width=480 height=800 bpp=16
emulator: autoconfig: -kernel /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//kernel-qemu
emulator: autoconfig: -ramdisk /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//ramdisk.img
emulator: Using initial system image: /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//system.img
emulator: autoconfig: -data /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/userdata-qemu.img
emulator: autoconfig: -initdata /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/userdata.img
emulator: autoconfig: -cache /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/cache.img
emulator: Physical RAM size: 343MB
Content of hardware configuration file:
hw.cpu.arch = arm
hw.cpu.model = cortex-a8
hw.ramSize = 343
hw.screen = touch
hw.mainKeys = yes
hw.trackBall = no
hw.keyboard = yes
hw.keyboard.lid = no
hw.keyboard.charmap = qwerty2
hw.dPad = no
hw.gsmModem = yes
hw.gps = yes
hw.battery = no
hw.accelerometer = yes
hw.audioInput = yes
hw.audioOutput = yes
hw.sdCard = yes
disk.cachePartition = yes
disk.cachePartition.path = /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/cache.img
disk.cachePartition.size = 66m
hw.lcd.width = 480
hw.lcd.height = 800
hw.lcd.depth = 16
hw.lcd.density = 240
hw.lcd.backlight = yes
hw.gpu.enabled = no
hw.camera.back = none
hw.camera.front = none
vm.heapSize = 32
hw.sensors.proximity = yes
hw.sensors.magnetic_field = yes
hw.sensors.orientation = yes
hw.sensors.temperature = yes
hw.useext4 = yes
kernel.path = /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//kernel-qemu
kernel.parameters = android.checkjni=1
disk.ramdisk.path = /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//ramdisk.img
disk.systemPartition.initPath = /usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//system.img
disk.systemPartition.size = 550m
disk.dataPartition.path = /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/userdata-qemu.img
disk.dataPartition.size = 200m
avd.name = AVD_for_Nexus_S_by_Google
.
QEMU options list:
emulator: argv[00] = "/usr/local/Cellar/android-sdk/22.3/tools/emulator64-arm"
emulator: argv[01] = "-android-hw"
emulator: argv[02] = "/Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/hardware-qemu.ini"
Concatenated QEMU options:
/usr/local/Cellar/android-sdk/22.3/tools/emulator64-arm -android-hw /Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/hardware-qemu.ini
emulator: registered 'boot-properties' qemud service
emulator: nand_add_dev: system,size=0x22600000,initfile=/usr/local/Cellar/android-sdk/22.3/system-images/android-19/armeabi-v7a//system.img,pagesize=512,extrasize=0
emulator: mapping 'system' NAND image to /tmp/android-tobi/emulator-lSd528
emulator: nand_add_dev: userdata,size=0xc800000,file=/Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/userdata-qemu.img,pagesize=512,extrasize=0
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'dalvik.vm.heapsize' = '32m'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '240'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '1'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'none'
emulator: nand_add_dev: cache,size=0x4200000,file=/Users/tobi/.android/avd/AVD_for_Nexus_S_by_Google.avd/cache.img,pagesize=512,extrasize=0
emulator: Initializing hardware OpenGLES emulation support
emulator: Kernel parameters: qemu.gles=0 qemu=1 console=ttyS0 android.qemud=ttyS1 android.checkjni=1 ndns=1
emulator: Trace file name is not set
emulator: autoconfig: -scale 1
emulator: Could not open file: (null)/system/build.prop: No such file or directory
emulator: control console listening on port 5554, ADB on port 5555
emulator: sent '0012host:emulator:5555' to ADB server
emulator: ping program: /usr/local/Cellar/android-sdk/22.3/tools/ddms
emulator: ping command: /usr/local/Cellar/android-sdk/22.3/tools/ddms ping emulator 22.3.0 "Intel Inc." "Intel HD Graphics 5000 OpenGL Engine" "2.1 INTEL-8.18.26"
goldfish_fb_get_pixel_format:167: display surface,pixel format:
bits/pixel: 16
bytes/pixel: 2
depth: 16
red: bits=5 mask=0xf800 shift=11 max=0x1f
green: bits=6 mask=0x7e0 shift=5 max=0x3f
blue: bits=5 mask=0x1f shift=0 max=0x1f
alpha: bits=0 mask=0x0 shift=0 max=0x0
我在 Android 6.0 模拟器上遇到了这个问题,直到我更新了浏览器的权限以允许访问存储,这才解决了我的问题。
在模拟器中,导航至:设置 -> 应用程序 -> 浏览器并选择权限,然后启用存储。
使用
feature
Vulkan
标志启动模拟器对我有用:
emulator.exe -avd 'YOUR_EMULATOR_NAME' -feature -Vulkan
我通过创建新的 sdcard.img 在 AOSP 上解决了这个问题:
mksdcard 1G out/target/product/generic/sdcard.img
然后启动模拟器:
emulator -sdcard out/target/product/generic/sdcard.img
对于 SDK,请尝试手动或通过 GUI 创建另一个 SD 卡。
我只需为 AVD 指定 SD 卡大小即可解决此问题
嗯,在这个问题上挣扎了几天,并尝试了所有可能的解决方案(例如设置 DNS 服务器、按 F8 键)后,我的问题通过创建 SD 映像文件得到解决,按照上面 user1895218 给出的解决方案。我正在运行 32 位 Ubuntu 12.04 LTS。
这是通过查看下面的 logcat 消息来识别的:
E/NativeDaemonConnector.ResponseQueue(364):等待响应超时
E/VoldConnector(364):等待对 3 个卷 mkdirs /storage/sdcard/Android/data/com.android.browser/files/ 的响应超时
D/AndroidRuntime(832):关闭虚拟机 W/dalvikvm(832):threadid = 1:线程因未捕获的异常而退出(组= 0xb1a47b90)
E/AndroidRuntime(832):致命异常:main E / AndroidRuntime(832):进程:com.android.browser,PID:832 E / AndroidRuntime(832):java.lang.RuntimeException:无法获取提供程序com.android.browser.provider.SnapshotProvider:java.lang.NullPointerException E / AndroidRuntime(832):在android.app.ActivityThread.installProvider(ActivityThread.java:4774) E / AndroidRuntime(832):在android.app.ActivityThread.installContentProviders(ActivityThread.java:4366) E / AndroidRuntime(832):在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4306) E / AndroidRuntime(832):在android.app.ActivityThread.access $ 1400(ActivityThread.java:135) E / AndroidRuntime(832):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1457) E / AndroidRuntime(832):在android.os.Handler.dispatchMessage(Handler.java:102) E / AndroidRuntime(832):在android.os.Looper.loop(Looper.java:137) E / AndroidRuntime(832):在android.app.ActivityThread.main(ActivityThread.java:4998) E / AndroidRuntime(832):在java.lang.reflect.Method.invokeNative(本机方法) E / AndroidRuntime(832):在java.lang.reflect.Method.invoke(Method.java:515) E / AndroidRuntime(832):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:777) E / AndroidRuntime(832):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) E / AndroidRuntime(832):在dalvik.system.NativeStart.main(本机方法) E / AndroidRuntime(832):引起:java.lang.NullPointerException E / AndroidRuntime(832):在android.os.Parcel.readException(Parcel.java:1467) E / AndroidRuntime(832):在android.os.Parcel.readException(Parcel.java:1415) E / AndroidRuntime(832):在android.os.storage.IMountService $ Stub $ Proxy.mkdirs(IMountService.java:750) E / AndroidRuntime(832):在android.app.ContextImpl.ensureDirsExistOrFilter(ContextImpl.java:2160) E / AndroidRuntime(832):在android.app.ContextImpl.getExternalFilesDirs(ContextImpl.java:856) E / AndroidRuntime(832):在android.app.ContextImpl.getExternalFilesDir(ContextImpl.java:839) E / AndroidRuntime(832):在android.content.ContextWrapper.getExternalFilesDir(ContextWrapper.java:210) E / AndroidRuntime(832):在com.android.browser.provider.SnapshotProvider.getOldDatabasePath(SnapshotProvider.java:116) E / AndroidRuntime(832):在com.android.browser.provider.SnapshotProvider.migrateToDataFolder(SnapshotProvider.java:123) E / AndroidRuntime(832):在com.android.browser.provider.SnapshotProvider.onCreate(SnapshotProvider.java:137) E / AndroidRuntime(832):在android.content.ContentProvider.attachInfo(ContentProvider.java:1589) E / AndroidRuntime(832):在android.content.ContentProvider.attachInfo(ContentProvider.java:1560) E / AndroidRuntime(832):在android.app.ActivityThread.installProvider(ActivityThread.java:4771) E/AndroidRuntime(832): ... 12 更多
更改 SD 卡大小对我来说是不可能的(项目符号在 Android 中呈灰色)。相反,我使用了这个答案:
Vulkan = off
GLDirectMem = on