大家好:
    
    如题所述。下载了最新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下绘制模拟器这个窗口的函数应该在  哪个文件  哪个函数里呢?
     

解决方案 »

  1.   

    单独编译的 你看一下你的工程根目录下,有个  build/envsetup.sh 文件,所有的命令都在这里了,  单独编译一个文件 用mmm 后跟应用的目录   如:mmm /packages/apps/email    或者进入到你的应用目录,例如进入到/packages/apps/email 之下,然后执行mm命令。
      

  2.   

    没遇到过类似问题,建议楼主下载发行过版本的代码git://android.git.kernel.org/platform/manifest.git
    这个代码为最新的代码,肯定是要比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
      

  3.   

    我用的版本为
    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.   

    用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的下拉列表选不了,只能手工改,但改完后,从界面进去看属性,还是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还需要其他东西哦。
      

  5.   

    同样问题,也发现楼主在Google的Group里的mail了,Mark一下
      

  6.   

    2.3确实没有问题,模拟器能起来但我在启动android,创建AVD时,Target怎么是灰的,无法选择
      

  7.   

    单独编译emulator的命令:
    mydroid$ mmm external/qemu出错的地方就是在4楼说的文件里,大致看了下,胡乱改了改,没有成功 
      

  8.   

    改了,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源码站好像被黑了,下不下来哦。
    悲剧哦。
      

  9.   

    不用重新下,应该可以切换branch的
      

  10.   

    这两天我也下载不了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目录下是空的。
      

  11.   

    哦,将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??怎么让这个工具认我编译出来的东西?
      

  12.   

    哦,找到原因了
    只要更新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版本时就没有这个问题,虽然模拟器起不来。
      

  13.   

    连不上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函数
      

  14.   

    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 这个去更新的时候,还是会连接到源码网站去。    
      

  15.   

    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暂停了
      

  16.   

    版本控制的命令不是太明白,看来得找些资料看看。从别的机器上拷贝了个3.2的API,使用编译的3.1.4.1.5.9.2.6.5的AVD工具创建AVD并运行模拟器,启动正常,看来是3.1.4.1.5.9.2.6.5版本的代码中哪里有问题,导致模拟器起不来。
      

  17.   

    确实不是模拟器的问题,问题出在system.img
    我也用android更新下来了3.2和2.3.3的SDK Platform, 然后用里面system.img替换了out/target/product/generic下的system.img都是可以正常起来的(3.2的平板模拟器运行是相当的慢啊,机器不行了啊)Google放了个bug版本在master上,鉴定完毕
      

  18.   

    今天上午android.git.kernel.org还正常
    下午就完蛋了
    android.git.all.kernel.org好像包含了3个网站,也包含android.git.kernel.org,其他两个网站在浏览器能进去,但用git连不上。郁闷哦。
      

  19.   

    我也遇到这个问题了,一直提示:Trying to open the OpenGLES pipe without GPU emulation!
    模拟器启动不了。一下。
      

  20.   

    不奇怪啊,我大版本也是============================================
    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
    ============================================出的问题也一样!