android源码及emulator源码编译问题

zlx105 2011-09-01 05:35:54
大家好:

如题所述。下载了最新Android源码后(方法:repo init -u git://android.git.kernel.org/platform/manifest.git
,repo sync),也编译成功了,但是在终端里输入emulator命令后,出现如下错误:

netPipe_initTcp: Port is '22468'
netPipe_initFromAddress:Could not connect to socket:...,
模拟器自动关闭;

后来又重新编译了一下,结果出现错误:

Trying to open the OpenGLES pipe without GPU emulation

并且终端上一直在循环这个错误信息,模拟器一直在,不过是一直黑屏。

哪位大虾遇到过这个问题啊,指教下哦。

环境:
VM7.0
Ubuntu11.04
其他开发环境之类均按网上给的提示进行安装操作的,应该没问题。

另,想知道下,如何去单独编译android的emulator源码啊,并且找到linux下绘制模拟器这个窗口的函数应该在 哪个文件 哪个函数里呢?
...全文
2586 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
念茜 2011-10-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lz_0618 的回复:]

用http://android.git.kernel.org/platform/manifest.git
获取的代码版本发现是:3.1.4.1.5.9.2.6.5

当将AVD中的:
config.ini和hardware-qemu.ini文件中配置
从hw.gpu.enabled=yes
改成
hw.gpu.enabled=no

注释:创建AVD的下拉列表选不了,只能手工改……
[/Quote]
好牛的版本号!
断问天 2011-10-03
  • 打赏
  • 举报
回复
不奇怪啊,我大版本也是

============================================
PLATFORM_VERSION_CODENAME=AOSP
PLATFORM_VERSION=3.1.4.1.5.9.2.6.5
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
============================================

出的问题也一样!
断问天 2011-10-02
  • 打赏
  • 举报
回复
我也遇到这个问题了,一直提示:Trying to open the OpenGLES pipe without GPU emulation!
模拟器启动不了。mark一下。
tonypig 2011-09-07
  • 打赏
  • 举报
回复
确实不是模拟器的问题,问题出在system.img
我也用android更新下来了3.2和2.3.3的SDK Platform, 然后用里面system.img替换了out/target/product/generic下的system.img都是可以正常起来的(3.2的平板模拟器运行是相当的慢啊,机器不行了啊)

Google放了个bug版本在master上,鉴定完毕
lz_0618 2011-09-07
  • 打赏
  • 举报
回复
今天上午android.git.kernel.org还正常
下午就完蛋了
android.git.all.kernel.org好像包含了3个网站,也包含android.git.kernel.org,其他两个网站在浏览器能进去,但用git连不上。

郁闷哦。
lz_0618 2011-09-06
  • 打赏
  • 举报
回复
哦,找到原因了
只要更新Tools就可以了,不要从Repository下载2.3.3的API,否则,嘿嘿,将把你的2.3.4的API冲掉!!
需要2.3.3API可以从别的地方将android拷贝到platforms下,这下android list targets能认出两个Targets了:
id: 1 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: QVGA, WVGA854, HVGA, WQVGA400, WQVGA432, WVGA800 (default)
id: 2 or "android-10"
Name: Android 2.3.4
Type: Platform
API level: 10
Revision: 1
Skins: QVGA, WVGA854, HVGA, WQVGA400, WQVGA432, WVGA800 (default)

也真是的,新编的SDK,居然认不出自己的API,还需要下载Android Tools才能认出来???

原来在编3.1版本时就没有这个问题,虽然模拟器起不来。
lz_0618 2011-09-06
  • 打赏
  • 举报
回复
哦,将android-2.3.4
和android/out/target/product/generic下的3个Image文件比较了一下,发现根本不一样,看来更新SDK时,将我android-2.3.4下的文件给覆盖了。

要是这样的话,那就是说,2.3.4下编译SDK编译出的"SDK,AVD管理工具”(这个工具是编译出来的吗?)根本不认我新编译的2.3.4??怎么让这个工具认我编译出来的东西?
lz_0618 2011-09-06
  • 打赏
  • 举报
回复
这两天我也下载不了

to tonypig:
那个版本数字确实很奇怪,是π的数值,肯定不会有错。

“不用重新下,应该可以切换branch的”,怎么切换??不可能吧,切换到别的版本也许会快点,但肯定会下一些东西。

有关SDK的概念还是没有弄明白:
1,我原来说的创建AVD是Target是灰的,我在那个SDK,AVD管理工具中,更新了一些包,Target到出来了,但API是2.3.3的,而我源码是2.3.4的啊?
2,创建AVD时,怎么关联到我编译生成的img的,要是通过API关联的话,那肯定没有关联上,启动的模拟器应该是下载下来的;
3,更新我的SDK时,下载东西放哪里了?使用android list targets命令能搜索所有在<sdk>/platforms/ 和<sdk>/add-ons/下的image,并创建Target(The android tool scans the <sdk>/platforms/ and <sdk>/add-ons/ directories looking for valid system images and then generates the list of targets),我的<sdk>/platforms/目录下内容(add-ons下无内容):
android@android23:/usr/bin/AndroidSDK/platforms$ ls
android-2.3.4
并没有android-10,android list targets显示内容:
id: 1 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: QVGA, WVGA854, HVGA, WQVGA400, WQVGA432, WVGA800 (default)

在Android网站上下载的SDK,我更新时到在platforms下看到了android-10这个目录,更新前的<sdk>/platforms/ and <sdk>/add-ons目录下是空的。
zlx105 2011-09-06
  • 打赏
  • 举报
回复
这个3.1415926。。。。。
够雷。。。
tonypig 2011-09-06
  • 打赏
  • 举报
回复
不用重新下,应该可以切换branch的
tonypig 2011-09-06
  • 打赏
  • 举报
回复
那个不是3.1版本吧,3.14159265,汗。。。
zlx105 2011-09-06
  • 打赏
  • 举报
回复
改了,hw.gpu.enabled为yes,确实还是有错误的。
难道3.1版本发布出来的有问题?

而且我想单独去编译emulator模块,
执行了build/envsetup.sh之后

including device/htc/passion/vendorsetup.sh
including device/samsung/crespo4g/vendorsetup.sh
including device/samsung/crespo/vendorsetup.sh
including sdk/bash_completion/adb.bash
这些文件还要自己去生成一下环境变量么?

现在是想下个2.3的版本,可惜的是android源码站好像被黑了,下不下来哦。
悲剧哦。。。。


lz_0618 2011-09-06
  • 打赏
  • 举报
回复
版本控制的命令不是太明白,看来得找些资料看看。

从别的机器上拷贝了个3.2的API,使用编译的3.1.4.1.5.9.2.6.5的AVD工具创建AVD并运行模拟器,启动正常,看来是3.1.4.1.5.9.2.6.5版本的代码中哪里有问题,导致模拟器起不来。
tonypig 2011-09-06
  • 打赏
  • 举报
回复
git checkout -t -b gingerbread-release korg/gingerbread-release

这个命令是要在project目录下执行的,比如external/qemu
执行完后可以用git branch -a 可以查看

而在android目录下需要用
repo forall -c git checkout -t -b gingerbread-release korg/gingerbread-release

但是我说了,每个branch需要的project是不一样的,所以这样切换可能是不完全的

悲催啊,Google到底在干嘛,为嘛把android.git.kernel.org暂停了
zlx105 2011-09-06
  • 打赏
  • 举报
回复
To:tonypig

当用:git checkout -t -b gingerbread-release korg/gingerbread-release,去更新的时候提示出错哦:fatal: Not a git repository (or any of the parent directories): .git

这个是要到manifest.git目录下使用?但也尝试了,仍不成功。

用repo init -b gingerbread-release 这个去更新的时候,还是会连接到源码网站去。

tonypig 2011-09-06
  • 打赏
  • 举报
回复
连不上android.git.kernel.org的情况下也可以切换,但是由于每个branch包含的project不一样,你只能将有这个branch的project切换到gingerbread
常规的切换:
repo init -b gingerbread-release
repo sync
repo start gingerbread-release --all
repo checkout gingerbread-release

单个project切换:
git checkout -t -b gingerbread-release korg/gingerbread-release
git checkout gingerbread-release (if already exist)
以此类推, 可以这么做:
repo forall -c git checkout -t -b gingerbread-release korg/gingerbread-release
但是这样不能保证所有gingerbread所需要的project都下到本地了
至少我发现这些是没有其他branch的:
zxd@tu-user-laptop:/mydroid$ repo branches
* gingerbread-release | not in:
docs/source.android.com
external/apache-qp
external/harfbuzz
external/hyphenation
external/jsilver
external/libmtp
external/libusb
external/libusb-compat
external/libxslt
external/mksh
external/qemu-pc-bios
external/valgrind
external/webp
frameworks/opt/carddav
tools/tradefederation


另外@赵立新,环境变量的问题,环境变量是在lunch时设的,envsetup.sh 只是添加了这个bash函数

tonypig 2011-09-05
  • 打赏
  • 举报
回复
单独编译emulator的命令:
mydroid$ mmm external/qemu

出错的地方就是在4楼说的文件里,大致看了下,胡乱改了改,没有成功
lz_0618 2011-09-05
  • 打赏
  • 举报
回复
2.3确实没有问题,模拟器能起来

但我在启动android,创建AVD时,Target怎么是灰的,无法选择
tonypig 2011-09-04
  • 打赏
  • 举报
回复
同样问题,也发现楼主在Google的Group里的mail了,Mark一下
lz_0618 2011-09-03
  • 打赏
  • 举报
回复
我用的版本为
http://android.git.kernel.org/platform/manifest.git

也出现问题:
Trying to open the OpenGLES pipe without GPU emulation

这句LOG不知是否是文件:android/external/qemu/android/hw-pipe-net.c中的信息
openglesPipe_init( void* hwpipe, void* _looper, const char* args )
{
char temp[32];
NetPipe *pipe;

if (!_opengles_init) {
/* This should never happen, unless there is a bug in the
* emulator's initialization, or the system image. */
D("Trying to open the OpenGLES pipe without GPU emulation!");
return NULL;
}
...
}

我修改gedit ./external/qemu/android/avd/hardware-properties.ini
# Hardware OpenGLES emulation support
#
name = hw.gpu.enabled
type = boolean
default = no
abstract = GPU emulation
description = Enable/Disable emulated OpenGLES GPU

改为yes后出其他问题,这里也不知是什么意思。
加载更多回复(4)

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧