繁体   English   中英

构建源代码后加载模拟器

[英]Loading emulator after building source

我根据这里提到的说明下载并构建了Android源代码:但我无法启动模拟器。 以下是我的PATH,我不得不手动添加模拟器路径:

$ echo $PATH
/usr/lib/jvm/java-6-sun/bin:/home/anil_ubuntu/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/s    bin:/usr/bin:/sbin:/bin:/usr/games:/home/anil_ubuntu/androidsrc/out/host/linux-x86/bin:/home/anil_ubuntu/androidsrc/prebuilt/linux-x86/toolchain/arm-linux-androideabi- 4.4.x/bin:/home/anil_ubuntu/androidsrc/development/emulator/qtools:/home/anil_ubuntu/android    src/prebuilt/linux-x86/toolchain/arm-linux-androideabi-   4.4.x/bin:/home/anil_ubuntu/androidsrc/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
anil_ubuntu@work:~/androidsrc$ 

我认为更简单的方法如下:

再次重新构建构建环境,它很快。 有两种方法:

1)$。 build / envsetup.sh && lunch full-eng && emulator

这样Android将自动搜索system.img / userdata.img / ramdisk.img / kernel-qemu等。如果需要自己指定system.img / userdata.img等,请使用2)方法。

2)$。 build / envsetup.sh && lunch full-eng && emulator -sysdir out / target / product / generic / -system out / target / product / generic / system.img -ramdisk out / target / product / generic / ramdisk.img -data out / target / product / generic / userdata.img -kernel prebuilts / qemu-kernel / arm / kernel-qemu-armv7 -memory 512

您可以将这些添加到.bashrc文件中

export ANDROID_PRODUCT_OUT = $ ANDROID_SRC / out / target / product / generic

export ANDROID_BIN = $ ANDROID_SRC / out / host / linux-x86 / bin

PATH = $ ANDROID_BIN:$ PATH

在android源项目的根文件夹中使用以下代码创建一个脚本文件,并在构建后运行它。 在我的情况下,它完美地工作,但您可能需要更改一些参数:

out/host/linux-x86/bin/emulator -sysdir out/target/product/generic/ -system out/target/product/generic/system.img -ramdisk out/target/product/generic/ramdisk.img -data out/target/product/generic/userdata.img -kernel prebuilt/android-arm/kernel/kernel-qemu -sdcard sdcard.img -skindir sdk/emulator/skins -skin WVGA800 -scale 0.7 -memory 512 -partition-size 1024

在Ubuntu 10.04 / 11.10 32位上进行多次重建之后,我终于可以在11.10 64位上编译源(主)但我要进行以下更改:

  1. build / core / combo / HOST_linux-x86.mk + HOST_GLOBAL_CFLAGS + = -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE = 0

  2. external / mesa3d / src / glsl / linker.cpp +'#include'

  3. external / oprofile / libpp / format_output.h:94:22:错误:引用'counts'不能声明为'mutable'[-fpermissive] -mutable counts_t&counts; + counts_t&counts;

  4. external / gtest / include / gtest / internal / gtest-param-util.h + #include

  5. external / llvm / llvm-host-build.mk:+“LOCAL_LDLIBS:= -lpthread -ldl”

我在各种论坛上看到谷歌将停止支持32位主机,因此,如果你开始构建代码,请使用64位。

老帖但问题是AOSP改变了一些东西(包括预构建内核的位置),当你做一个source build / envsetup.sh时,这应该修复它,但它没有,无论如何这里是你如何解决它:

emulator -kernel prebuilt/android-arm/kernel/kernel-qemu-armv7

我在版本较小或相同的ICS中发现了这种错误。 我的模拟器正在寻找

prebuilts/qemu-kernel/arm/kernel-qemu-armv7

而实际上是它所在的内核

prebuilt/android-arm/kernel/kernel-qemu-armv7

所以,对于那些需要像我一样构建一个androd_4.0.1版本并且在尝试使用命令模拟器运行时遇到麻烦的人来说,这可能有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM