ubuntu下編譯android2.3源碼問題集

最近在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. 編譯源碼模塊:(https://blog.csdn.net/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  (來自https://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. 將文件修改回來後,重啟電腦即可

摘自 mmvc2010的專欄

發佈留言