ubuntu下编译android2.3源码问题集

本文详细介绍了在Ubuntu环境下编译Android2.3源码的过程,包括解决Ubuntu安装sun-java6-jre时无法选择ok键的问题、删除原有JDK、make命令系列操作、配置sources.list更新软件库、解决无法获得锁等问题,并提供了编译源码模块、修改分辨率、解决权限问题、adb设备连接问题、解决真机安装问题、修改profile文件导致的系统无法进入等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在ubuntu下编译android2.3的源码,并修改了某些模块,以下是遇到到一些问题,待续....


1. 解决Ubuntu安装sun-java6-jre时无法选择ok键的问题

   先点一下tab键才能选ok键


2. 删除原来的JDK:

sudo apt-get remove sun-java6-jre sun-java6-plugin sun-java6-bin sun-java6-fonts


3.  make clean   --->  make update-api   -->  make


4. /etc/apt/sources.list,

   执行 apt-get update 更新软件库


5. 无法获得锁 /var/lib/dpkg/lock
   sudo rm /var/cache/apt/archives/lock

   sudo rm /var/lib/dpkg/lock


6. 错误:
   arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory

   make: *** [out/target/product/generic/obj/EXECUTABLES/dalvikvm_intermediates/Main.o] 错误 1

   ---解决办法:可能是权限问题,到android源码目录下,直接chmod -R 777 *


7. 编译源码模块:(http://blog.youkuaiyun.com/luoshengyang/article/details/6566662)
    a.  首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:
         build下的一个文件:
         source build/envsetup.sh    (前面要加上source,否则找不到mmm等命令)(不同的shell窗口都得运行该命令后才能使用mmm等命令)
    b.   使用mmm命令来编译指定的模块,例如QuickSearchBox应用程序:
         mmm packages/apps/QuickSearchBox/
    c.  编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。
        make snod
    d.  模拟器到环境变量 运行模拟器
        export PATH=$PATH:/mydroid2.30/mydroid/out/host/linux-x86/bin
        export ANDROID_PRODUCT_OUT=/mydroid2.30/mydroid/out/target/product/generic
         //注释 ~/Android/out/host/linux-x86/bin有我们要执行的emulator命令,而~/Android/out/target/product/generic是Android镜像存放目录,下面执行emulator命令时会用到。

        emulator


8. 源码中存放app到路径 out/target/product/generic/system/app

   刷机时,该路径中到apk都会成为系统自带应用。


9. 错误:  ./adb devices 提示????????????    no permissions
   ----解决办法:切换到root用户,使用adb kill-server, adb start-server 就可以了

   ----原因:adb需要在root权限时再启动才有权限。


10. 错误:编译的源码apk在真机上安装时会出现INSTALL_FAILED_OLDER_SDK问题
    ---解决办法:修改源码下build/core/version_defaults.mk文件,将
              PLATFORM_VERSION := 2.3.1
              PLATFORM_VERSION_CODENAME := REL

       然后重新编译整个源码。


11. android分辨率的修改 && hdpi-mdpi  (来自http://lostghoul.blog.163.com/blog/static/11172199920112842738688/)
    在文件 夹 build\target\product\generic.mk加入

    CUSTOM_LOCALES:= hdpi mdpi ldpi


12. 错误:root用户使用gedit和emacs带图形界面的都出错
   在终端切换至root,然后gedit某文件,结果报错:
   (gedit:4987): EggSMClient-WARNING **: Failed to connect to the session manager: None of the authentication protocols specified are supported**
   GLib-GIO:ERROR:gdbusconnection.c:2270:initable_init: assertion failed: (connection->initialization_error == NULL)
   Aborted (core dumped)
    -----解决方法:就是在管理员用户的 .bashrc 文件尾部添加:

        export DBUS_SESSION_BUS_ADDRESS=""


13. 错误:进不了系统。修改了profile文件后,可能导致进不了系统(输入密码后,又返回输入密码的界面)
    解决办法:a.在输入密码界面,按ctrl+alt+F1 键,进入命令行模式
            b. 输入用户名和密码login
            c. 执行命令 /usr/bin/sudo vi /etc/profile
            d. 将文件修改回来后,重启电脑即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值