Android原始碼 編譯apk指令

2021-10-05 22:14:40 字數 916 閱讀 3645

有些時候我們**編寫完畢後,需要在原始碼的環境之中進行編譯。

也就是利用系統原始碼的環境,進行編譯系統apk或者so 檔案。

在原始碼根目錄之中執行:

輸入:source /build/envsetup.sh//初始化當前的編譯環境

選擇編譯版本:輸入lunch然後根據版本選擇輸入相應版本號數字

切換路徑:通過cd指令,切換到需要編譯的apk的目錄下 例如:frameworks/base/packages/systemui/執行編譯 輸入:mm或者mm -b執行編譯指令碼,該編譯指令碼,會根據你的package之中的android.mk檔案進行編譯。

得到輸出結果 編譯完成後的so或者apk檔案,都會在out/target 目錄之中,請進行查詢。

編譯完成 自動輸出的日誌之中,install後面跟著的就是最終編譯成果的輸出路徑。

1.error: syntax error on tokens, delete these tokens

2.error:invalid character constant

解決:通常情況下,是由於文件編碼格式,造成編譯器讀取檔案訪問亂碼造成的。

檢查方式:使用vim 開啟檔案,修改亂碼地方,重新儲存。

3.error:r cannot be resolved to a variable

r檔案物件編譯錯誤。主要原因在於我們自己新增的**之中r檔案的import 路徑沒有寫,或者寫錯了。

編譯檢查之中找不到這個r檔案。

新增上就可以解決錯誤了。

編譯過程之中 各種的warning 不用在意,警告而已。不影響編譯和檔案生成。

編譯android原始碼apk是否生成odex方法

其實android系統預設的配置是,如果沒有指定disable dexpreopt true android.mk中加入 那麼user版本生成odex,其他版本不生成odex檔案 進入原始碼目錄 build core main.mk中找到 ifneq true,disable dexpreopt i...

原始碼中編譯生成完整apk

因為ap需要用到system許可權,所以在原始碼中編譯是最省力的方式。但是在編譯後發現乙個問題,編譯出的apk還會帶乙個同名的odex,這樣編譯出的apk是不完整的,被剔除了dex檔案,是無法單獨拿出來給機子安裝用的。後來發現需要兩個地方做修改 一 在本身的android.mk中加入 local d...

Debian編譯Android原始碼

筆記本 intel i3 ram 4g linux debian 8.1.0 amd64 xfce cd 1.iso android 4.2.2android官方推薦使用ubuntu編譯原始碼,但我試了ubuntu 12.04 ubuntu 14.04,結果都在安裝好所需檔案重啟電腦後,系統就出莫名...