歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Ubuntu下編譯Android2.3源碼問題集

Ubuntu下編譯Android2.3源碼問題集

日期:2017/3/1 10:30:13   编辑:Linux編程

最近在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. 編譯源碼模塊:

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

在文件 夾 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. 將文件修改回來後,重啟電腦即可。

Copyright © Linux教程網 All Rights Reserved