安卓模拟器浏览器崩溃

22

我正在尝试在Android SDK模拟器(Mac)中使用浏览器,但它在打开后不停地崩溃。只要我使用4.4版本。我甚至无法输入URL。是否有一些日志可以查看以找出问题所在?我已经在两台机器上尝试过了,它们都出现了相同的错误。

以下是初始化日志:

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浏览器”(蓝色地球图标)还是适用于Android的Google Chrome(默认情况下未安装)? - mikemaccana
5个回答

30

我在 Android 6.0 模拟器上遇到了这个问题,直到我更新了浏览器的权限以允许访问存储空间,这才解决了我的问题。

在模拟器中,导航至:设置 -> 应用程序 -> 浏览器,并选择“权限”,然后启用存储权限。


7

我通过创建一个新的sdcard.img文件来解决AOSP上的这个问题:

mksdcard 1G out/target/product/generic/sdcard.img

然后使用以下命令启动模拟器:

emulator -sdcard out/target/product/generic/sdcard.img

对于SDK,请尝试通过GUI手动创建另一个SD卡。


4

我可以通过指定 AVD 的 SD 卡大小来解决这个问题。


4
启动模拟器并使用Vulkan标志对我有效:emulator.exe -avd 'YOUR_EMULATOR_NAME' -feature -Vulkan

这对我来说是一个解决方案。使用MacOS 14,架构arm64(M1)并模拟一个带有API 34的设备(通过Android Studio安装)。到目前为止,一切都运行得更快,没有图形故障。 - undefined

1

经过几天的努力和尝试所有可能的解决方案,如设置DNS服务器、按F8键等,我的问题通过创建SD图像文件得到了解决,这是由上面用户1895218提供的解决方案。我正在运行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): 线程id=1:线程退出并抛出未捕获异常(group=0xb1a47b90)

E/AndroidRuntime( 832): 致命异常: 主要进程 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): at android.app.ActivityThread.installProvider(ActivityThread.java:4774) E/AndroidRuntime( 832): at android.app.ActivityThread.installContentProviders(ActivityThread.java:4366) E/AndroidRuntime( 832): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4306) E/AndroidRuntime( 832): at android.app.ActivityThread.access$1400(ActivityThread.java:135) E/AndroidRuntime( 832): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1457) E/AndroidRuntime( 832): at android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime( 832): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime( 832): at android.app.ActivityThread.main(ActivityThread.java:4998) E/AndroidRuntime( 832): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime( 832): at java.lang.reflect.Method.invoke(Method.java:515) E/AndroidRuntime( 832): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) E/AndroidRuntime( 832): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) E/AndroidRuntime( 832): at dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime( 832): 引起原因: java.lang.NullPointerException E/AndroidRuntime( 832): at android.os.Parcel.readException(Parcel.java:1467) E/AndroidRuntime( 832): at android.os.Parcel.readException(Parcel.java:1415) E/AndroidRuntime( 832): at android.os.storage.IMountService$Stub$Proxy.mkdirs(IMountService.java:750) E/AndroidRuntime( 832): at android.app.ContextImpl.ensureDirsExistOrFilter(ContextImpl.java:2160) E/AndroidRuntime( 832): at android.app.ContextImpl.getExternalFilesDirs(ContextImpl.java:856) E/AndroidRuntime( 832): at android.app.ContextImpl.getExternalFilesDir(ContextImpl.java:839) E/AndroidRuntime( 832): at android.content.ContextWrapper.getExternalFilesDir(ContextWrapper.java:210) E/AndroidRuntime( 832): at com.android.browser.provider.SnapshotProvider.getOldDatabasePath(SnapshotProvider.java:116) E/AndroidRuntime( 832): at com.android.browser.provider.SnapshotProvider.migrateToDataFolder(SnapshotProvider.java:123) E/AndroidRuntime( 832): at com.android.browser.provider.SnapshotProvider.onCreate(SnapshotProvider.java:137) E/AndroidRuntime( 832): at android.content.ContentProvider.attachInfo(ContentProvider.java:1589) E/AndroidRuntime( 832): at android.content.ContentProvider.attachInfo(ContentProvider.java:1560) E/AndroidRuntime( 832): at android.app.ActivityThread.installProvider(ActivityThread.java:4771) E/AndroidRuntime( 832): ... 12 more


一个SD镜像文件是什么?你的意思是虚拟插槽中必须有一个格式正确的SD卡吗? - Peter Wone
1
我来回答自己的问题,是的,在虚拟插槽中必须有一个有效的SD卡映像。在Windows下,您可以在<adt> \ sdk \ tools中找到它,并使用以下命令行创建一个小的映像文件,以使模拟器正常运行:mksdcard -l 64M 64M 64M_SD.img。 - Peter Wone
你如何应对模拟器运行极慢的问题?我的意思是,启动需要大约一个小时。每次在“屏幕”上按下按钮都需要等待5-10分钟才有响应。 - Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接