1

我必须测试一个使用 Google 地图的现有 android 应用程序。我能够在带有 Google API(API 17)的模拟器 AVD 中运行它。我必须在三星 Galaxy S4 (1920x1080) 等高分辨率设备上对其进行测试。然后我更新了 SDK,现在所有带有 Google API 的 AVD(旧的和新创建的)的行为方式都相同:它启动但在启动后,一个发生分段错误(核心转储)并崩溃。DDMS 监视器显示最后一个错误与 EGL 有关。

我正在使用 2GB RAM 和 AMD Turion64 1.6Ghz 处理器的 linux 机器(Fedora,内核 2.6.35)运行模拟器。

尝试使用 API 16、17 和 18 运行它,仍然出现相同的错误。带有普通 SDK 的 AVD 工作正常,问题在于启用 Play、地图服务等的 Google API。也尝试了 emulator-arm 但它甚至无法启动。

在这个( Android 模拟器分段错误)中尝试了提示,但这不起作用。这是运行 Nexus10 (2560x1600) 的 AVD 时的输出:

[rajeesh@localhost ~]$ emulator -avd N10APINew -verbose -scale .3
emulator: found SDK root at /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit
emulator: Android virtual device file at: /home/rajeesh/.android/avd/N10APINew.ini
emulator: virtual device content at /home/rajeesh/.android/avd/N10APINew.avd
emulator: virtual device config file: /home/rajeesh/.android/avd/N10APINew.avd/config.ini
emulator: using core hw config path: /home/rajeesh/.android/avd/N10APINew.avd/hardware-qemu.ini
emulator: Found AVD target API level: 16
emulator: 'magic' skin format detected: 2560x1600
emulator: autoconfig: -skin 2560x1600
emulator: autoconfig: -skindir (null)
emulator: keyset loaded from: /home/rajeesh/.android/default.keyset
emulator: found SDK root at /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit
emulator: trying to load skin file '/media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/tools/lib/emulator/skins/dynamic//layout'
emulator: loaded dynamic skin width=2560 height=1600 bpp=16

emulator: autoconfig: -kernel /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/system-images/android-16/armeabi-v7a//kernel-qemu
emulator: autoconfig: -ramdisk /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/add-ons/addon-google_apis-google-16/images/armeabi-v7a//ramdisk.img
emulator: Using initial system image: /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/add-ons/addon-google_apis-google-16/images/armeabi-v7a//system.img
emulator: autoconfig: -data /home/rajeesh/.android/avd/N10APINew.avd/userdata-qemu.img
emulator: autoconfig: -initdata /home/rajeesh/.android/avd/N10APINew.avd/userdata.img
emulator: autoconfig: -cache /home/rajeesh/.android/avd/N10APINew.avd/cache.img
emulator: Physical RAM size: 1024MB

Content of hardware configuration file:
  hw.cpu.arch = arm
  hw.cpu.model = cortex-a8
  hw.ramSize = 1024
  hw.screen = touch
  hw.mainKeys = no
  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 = yes
  hw.accelerometer = yes
  hw.audioInput = yes
  hw.audioOutput = yes
  hw.sdCard = no
  disk.cachePartition = yes
  disk.cachePartition.path = /home/rajeesh/.android/avd/N10APINew.avd/cache.img
  disk.cachePartition.size = 66m
  hw.lcd.width = 2560
  hw.lcd.height = 1600
  hw.lcd.depth = 16
  hw.lcd.density = 320
  hw.lcd.backlight = yes
  hw.gpu.enabled = yes
  hw.camera.back = none
  hw.camera.front = none
  vm.heapSize = 128
  hw.sensors.proximity = no
  hw.sensors.magnetic_field = yes
  hw.sensors.orientation = yes
  hw.sensors.temperature = yes
  hw.useext4 = no
  kernel.path = /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/system-images/android-16/armeabi-v7a//kernel-qemu
  kernel.parameters =  android.checkjni=1

  disk.systemPartition.initPath = /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/add-ons/addon-google_apis-google-16/images/armeabi-v7a//system.img
  disk.systemPartition.size = 200m
  disk.dataPartition.path = /home/rajeesh/.android/avd/N10APINew.avd/userdata-qemu.img
  disk.dataPartition.size = 200m
  avd.name = N10APINew
.
QEMU options list:
emulator: argv[00] = "/home/rajeesh/droid-kit/tools/emulator-arm"
emulator: argv[01] = "-android-hw"
emulator: argv[02] = "/home/rajeesh/.android/avd/N10APINew.avd/hardware-qemu.ini"
Concatenated QEMU options:
/home/rajeesh/droid-kit/tools/emulator-arm -android-hw /home/rajeesh/.android/avd/N10APINew.avd/hardware-qemu.ini
emulator: registered 'boot-properties' qemud service
emulator: nand_add_dev: system,size=0xc800000,initfile=/media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/add-ons/addon-google_apis-google-16/images/armeabi-v7a//system.img
emulator: mapping 'system' NAND image to /tmp/android-rajeesh/emulator-Tt0j9K
emulator: rounding devsize up to a full eraseunit, now c810000

emulator: nand_add_dev: userdata,size=0xc800000,file=/home/rajeesh/.android/avd/N10APINew.avd/userdata-qemu.img
emulator: rounding devsize up to a full eraseunit, now c810000

emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'dalvik.vm.heapsize' = '128m'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '320'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '0'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'none'
emulator: nand_add_dev: cache,size=0x4200000,file=/home/rajeesh/.android/avd/N10APINew.avd/cache.img
emulator: Initializing hardware OpenGLES emulation support
failed to create drawable
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
failed to create drawable
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
emulator: Kernel parameters: qemu.gles=1 qemu=1 console=ttyS0 android.qemud=ttyS1   android.checkjni=1 ndns=1
emulator: Trace file name is not set

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: /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/tools/ddms
emulator: ping command: /media/45d0873a-eafc-43a5-bcd8-6d674ae690c8/droid-kit/tools/ddms  ping emulator 22.2.1.0 "Mesa Project" "Software Rasterizer" "2.1 Mesa 7.9"
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
failed to create drawable
[2]+  Done                    android avd
Segmentation fault (core dumped)
[rajeesh@localhost ~]$ 
4

1 回答 1

0

不幸的是,即使使用 google api,您也无法在模拟器中测试 google maps api v2,尽管有些人已经这样做了。我尝试为谷歌地图配置模拟器,但无法做到。使用 google api 的作品与模拟器捆绑在一起的地图应用程序,但其他与地图相关的应用程序没有。

最简单的方法是在实际硬件中对其进行测试。

于 2013-10-21T08:51:41.823 回答