ubuntu 运行android模拟器(emulator)零星笔记、心得
来源:互联网 发布:linux c程序杀死进程 编辑:程序博客网 时间:2024/05/17 21:40
android 2.3.3
export ANDROID_PRODUCT_OUT=/home/android_source/android-2.3.3_r1/out/target/product/generic
export PATH=$PATH:/home/android_source/android-2.3.3_r1/out/host/linux-x86/bin
emulator
adb shell
android 4.2
export ANDROID_PRODUCT_OUT=/home/android_source/android-4.2_r1/out/target/product/generic
export PATH=$PATH:/home/android_source/android-4.2_r1/out/host/linux-x86/bin
emulator
///export ANDROID_SWT=/home/android_source/android-4.2_r1/out/host/linux-x86/framework
emulator -system system.img -data userdata.img -ramdisk ramdisk.img
android create avd -n myemulator -f -p /home/android_source/android-4.2_r1 -t 1
make kernal
export PATH=$PATH:/home/android_source/android-4.2_r1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
#make goldfish_defconfig 会造成不能启动模拟器的情况
make goldfish_armv7_defconfig
make
编译结果:
then arch/arm/boot/zImage is created编译环境的安装:
http://blog.csdn.net/yf210yf/article/details/9206269
源码的编译:
source build/envsetup.shlunch full-eng
make
运行模拟器
在终端中执行:emulator
在 ~/.bashrc
添加环境变量:
export ANDROID_PRODUCT_OUT=~/code/android-4.2/out/target/product/generic
export ANDROID_SWT=~/code/android-4.2/out/host/linux-x86/framework/
备注:
重启系统后:
执行emulator,出现如下错误:
emulator: ERROR: You did not specify a virtual device name, and the system
directory could not be found.
If you are an Android SDK user, please use '@<name>' or '-avd <name>'
to start a given virtual device (see -help-avd for details).
Otherwise, follow the instructions in -help-disk-images to start the emulator
解决:
source build/envsetup.sh
lunch sdk-eng
然后再执行
emulator
可以启动模拟器
emulator: WARNING: system partition size adjusted to match image file (216 MB > 200 MB)
解决: emulator -partition-size 300
我按你所描述的步骤编译了goldfish2.6.29,生成了zImage,emulator -kernel xxxx/zImage 后可以启动模拟器,但是看不到Android画面,一直是黑乎乎的。 自己发现了原因:原来要$ make goldfish_armv7_defconfig
模拟器运行需要四个文件,分别是Linux Kernel镜像zImage和Android镜像文件system.img、userdata.img和ramdisk.img。执行emulator命令时,如果不带任何参数,则Linux Kernel镜像默认使用~/Android/prebuilt/android-arm/kernel目录下的kernel-qemu文件,而Android镜像文件则默认使用ANDROID_PRODUCT_OUT目录下的system.img、userdata.img和ramdisk.img,也就是我们刚刚编译出来的镜像问题。
当然,我们也可以以指定的镜像文件来运行模拟器,即运行emulator时,即:
USER-NAME@MACHINE-NAME:~/Android$ emulator -kernel ./prebuilt/android-arm/kernel/kernel-qemu -sysdir ./out/target/product/generic -system system.img -data userdata.img -ramdisk ramdisk.img
资源描述:
frameworks/base/libs/utils/RefBase.cpp: In member function 'void android::RefBase::weakref_type::trackMe(bool, bool)':
frameworks/base/libs/utils/RefBase.cpp:507:67: error: passing 'const android::RefBase::weakref_impl' as 'this' argument of 'void android::RefBase::weakref_impl::trackMe(bool, bool)' discards qualifiers [-fpermissive]
解决办法:
编辑frameworks/base/libs/utils/Android.mk文件,修改
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
为
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive
修改之后出现错误:
g++: 错误: –fpermissive:没有那个文件或目录
Ubuntu 11.04升级到12.04 后发现编译Android出现错误(之前是OK的),具体错误和解决办法如下:
问题1:
frameworks/base/libs/utils/RefBase.cpp: 在成员函数‘void android::RefBase::weakref_type::trackMe(bool, bool)’中:
frameworks/base/libs/utils/RefBase.cpp:483:67: 错误: 将‘const android::RefBase::weakref_impl’作为‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’实参时丢弃了类型限定 [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1
原因:Ubuntu 11.10的gcc 4.6版本太高了,android编译需要gcc 4.4
解决办法:更换gcc、g++版本4.6为4.4
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
问题2:
g++: 错误: –fpermissive:没有那个文件或目录
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1
解决办法:sudo apt-get install g++-4.4-multilib
经过此操作编译可顺利进行。
- ubuntu 运行android模拟器(emulator)零星笔记、心得
- android 零星调试笔记(二)
- android 零星调试笔记
- android emulator( android模拟器)
- Android Emulator 模拟器使用方法
- emulator 创建Android模拟器
- Android 新建模拟器不能运行emulator: emulator window was out of view and was recentered
- Android emulator模拟器启动错误
- 如何快速启动Android模拟器(Android Emulator)
- Android 模拟器(Emulator)访问模拟器所在主机
- Ubuntu下编译Android源码并运行Emulator
- ubuntu下运行android emulator权限不够解决方法
- 在Ubuntu下编译Android源码并运行Emulator
- 编译运行android emulator
- Android 模拟器启动失败(SDL_app:emulator.exe )解决方法
- Ubuntu下,Android编译和模拟器运行
- ubuntu 打开Android模拟器(Android源码编译)提示:emulator:未找到命令
- Android emulator 手机模拟器使用详述
- RAII封装mutex
- Code Fragment-简单的数据类直接使用public字段来访问设值。
- MySql存储过程 游标(Cursor)
- Metaq原理与应用
- 【概率论】频率与概率
- ubuntu 运行android模拟器(emulator)零星笔记、心得
- mysql 存储过程 (一) 基础
- 还是先学好这些框架吧
- 解决Hibernate session is closed的一种可行性方案
- hdu 4286 Data Handler(Splay)
- atoi函数的编写
- Git客户端(Windows系统)的使用
- HDOJ 4309 - Seikimatsu Occult Tonneru 枚举,构图,最大流..
- arm-linux-gcc 常用参数讲解