【问题标题】:Android emulator browser crashAndroid模拟器浏览器崩溃
【发布时间】:2013-11-30 19:43:48
【问题描述】:

我正在尝试在 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 浏览器”(蓝色地球图标)还是 Android 版 Google Chrome(默认情况下未安装?)。

标签: android google-chrome android-emulator


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      好吧,在为这个问题苦苦挣扎了几天之后,在尝试了所有可能的解决方案(如设置 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: 线程以未捕获的异常退出 (group=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(Native Method) 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图像文件?您的意思是虚拟插槽中必须有一个有效格式化的 SD 卡?
      • 我会回答我自己的问题,是的,虚拟插槽中必须有一个有效的 SD 卡映像。在 Windows 下,您可以在 \sdk\tools 中找到它,并使用此命令行制作一个小命令,以使模拟器自行运行:mksdcard -l 64M 64M 64M_SD.img
      • 你是如何应对模拟器速度慢得令人难以置信的?我的意思是,启动大约需要一个小时。每次按下“屏幕”大约需要 5-10 分钟的响应时间。
      【解决方案4】:

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

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

      然后启动模拟器:

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-02
        • 1970-01-01
        • 2017-05-07
        • 2018-02-12
        • 1970-01-01
        相关资源
        最近更新 更多