Android学习笔记3--运行模拟器

源代码编译成功后,最后会有这样几行输出:

Generated: (out/target/product/generic/android-info.txt)
Installed file list: out/target/product/generic/installed-files.txt
Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img

接下来就可以在模拟器上运行看效果了。首先需要配置模拟器运行环境变量,如不配置则需在命令行中指定目录。

配置环境变量:

 $ export ANDROID_PRODUCT_OUT=<Your Source Directory>/out/target/product/generic

运行模拟器:(当然也可以将模拟器所在目录添加到$PATH中)

$ out/host/darwin-x86/bin/emulator


接下来就出错了:-( 在我的机器上报出如下错误,模拟器闪了一下就退出了

emulator: WARNING: system partition size adjusted to match image file (135 MB > 66 MB)

2014-03-27 16:25:45.931 emulator-arm[15635:1107] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
qemu: fatal: Unhandled exception 0x0

R00=0000037f R01=00000000 R02=00001fa3 R03=003f3b18
R04=00000004 R05=00000000 R06=003f40ec R07=019bb600
R08=019c24e8 R09=bfffce80 R10=00000000 R11=00000000
R12=000c5dce R13=00000000 R14=00000000 R15=00000000
PSR=40000000 -Z-- A usr26
Abort trap: 6


Google上查找原因,最终在官网上看到这样一段话:

Emulator built on MacOS 10.7 Lion doesn't work.

Symptom: The emulator (any version) built on MacOS 10.7 Lion and/or on XCode 4.x doesn't start.

Cause: Some change in the development environment causes the emulator to be compiled in a way that prevents it from working.

Fix: Use an emulator binary from the SDK, which is built on MacOS 10.6 with XCode 3 and works on MacOS 10.7.

原来还是环境不同导致编译出的emulator程序不兼容10.7,所以无法运行。不过解决的办法也很简单,就是使用Android SDK自带的emulator程序代替编译出来的程序。然后在参数中指定使用编译出来的系统文件即可。最终执行下面的命令后终于见到了熟悉的Android界面。:-)

$ emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu-armv7 -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ./out/target/product/generic/ramdisk.img


PS: 在最终命令执行前原本使用的命令是

$ emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img

但是会遇到两个问题,一是模拟器长时间停在黑屏状态没反应,解决方法是按蓝色部分修改;二是系统报出一个qemu: could not load initrd 'ramdisk.img'的错误,解决方法按红色内容修改即可。

PS2: 有些地方提到用make sdk进行编译和打包,如运行该命令前需要先执行lunch sdk-eng(默认为full-eng),否则会编译出错。


参考链接:

https://groups.google.com/forum/#!msg/android-building/kePECtbvGlE/UGUFQHDPny0J

http://source.android.com/source/known-issues.html

http://blog.csdn.net/ritterliu/article/details/17711241

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值