大家好:
如题所述。下载了最新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下绘制模拟器这个窗口的函数应该在 哪个文件 哪个函数里呢?
如题所述。下载了最新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下绘制模拟器这个窗口的函数应该在 哪个文件 哪个函数里呢?
这个代码为最新的代码,肯定是要比2.3版本新的代码,至于能不能直接用,我也不知道2.3版本为
git://android.git.kernel.org/gingerbread/platform/manifest.git -gingerbread2.2版本为
git://android.git.kernel.org/froyo/platform/manifest.git -froyo
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后出其他问题,这里也不知是什么意思。
获取的代码版本发现是:3.1.4.1.5.9.2.6.5当将AVD中的:
config.ini和hardware-qemu.ini文件中配置
从hw.gpu.enabled=yes
改成
hw.gpu.enabled=no注释:创建AVD的下拉列表选不了,只能手工改,但改完后,从界面进去看属性,还是yes还报以下错误:
emulator: ERROR: Could not load OpenGLES emulation library: libOpenglRender.so: cannot open shared object file: No such file or directory
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
Trying to open the OpenGLES pipe without GPU emulation!
Trying to open the OpenGLES pipe without GPU emulation!是不是编3.1还需要其他东西哦。
mydroid$ mmm external/qemu出错的地方就是在4楼说的文件里,大致看了下,胡乱改了改,没有成功
难道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源码站好像被黑了,下不下来哦。
悲剧哦。
那个版本数字确实很奇怪,是π的数值,肯定不会有错。“不用重新下,应该可以切换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目录下是空的。
和android/out/target/product/generic下的3个Image文件比较了一下,发现根本不一样,看来更新SDK时,将我android-2.3.4下的文件给覆盖了。要是这样的话,那就是说,2.3.4下编译SDK编译出的"SDK,AVD管理工具”(这个工具是编译出来的吗?)根本不认我新编译的2.3.4??怎么让这个工具认我编译出来的东西?
只要更新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版本时就没有这个问题,虽然模拟器起不来。
常规的切换:
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函数
执行完后可以用git branch -a 可以查看而在android目录下需要用
repo forall -c git checkout -t -b gingerbread-release korg/gingerbread-release但是我说了,每个branch需要的project是不一样的,所以这样切换可能是不完全的悲催啊,Google到底在干嘛,为嘛把android.git.kernel.org暂停了
我也用android更新下来了3.2和2.3.3的SDK Platform, 然后用里面system.img替换了out/target/product/generic下的system.img都是可以正常起来的(3.2的平板模拟器运行是相当的慢啊,机器不行了啊)Google放了个bug版本在master上,鉴定完毕
下午就完蛋了
android.git.all.kernel.org好像包含了3个网站,也包含android.git.kernel.org,其他两个网站在浏览器能进去,但用git连不上。郁闷哦。
模拟器启动不了。一下。
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
============================================出的问题也一样!