在做一個MTK的系統項目中,爲了方便開發,需要編譯一下SDK,現記錄一下編譯SDK遇到的問題
1.source build/envsetup.sh
2.lunch [product_name]
3. source build/envsetup.sh
4.make sdk
注意,第三步如果缺失,會報錯
device/mediatek/build/build/libs/custom.mk:160: *** Can not find ProjectConfig.mk , MTK_PROJECT_CONFIGS = . Stop.
進行上面4步後,還是編譯失敗,但是在out\target\common\obj\PACKAGING\android_jar_intermediates目錄下已經生成了android.jar,如果只需要這個jar的話,就算完成了。
編譯失敗的錯誤是關於生成Intent.aidl無規則對應:frameworks/core/java/android/content/Intent.aidl,在frameworks裏Intent.aidl的路徑其實是在frameworks/base/core/java/android/content/Intent.aidl,所以猜測是哪個地方配置錯誤,經過一番尋找,找到在
vendor\haocheng\proprietary\frameworks\core\java\android\content\Intent.aidl中存在這個文件,
在Y:\mt6735\vendor\haocheng\proprietary\frameworks\Android.mk中註釋掉
# ============================================================
# aidl_files := \
# $(HCT_TOPDIR)/frameworks/core/java/com/hct/android/content/Intent.aidl
# gen := $(TARGET_OUT_COMMON_INTERMEDIATES)/com.hct.framework.aidl
# $(gen): PRIVATE_SRC_FILES := $(aidl_files)
# vALL_SDK_FILES += $(gen)
# $(gen): $(aidl_files) | $(AIDL)
# @echo Aidl Preprocess: $@
# $(hide) $(AIDL) --preprocess $@ $(PRIVATE_SRC_FILES)
# the documentation
# ============================================================
然後又報有重複的類ConfigBuildFlags.java
然後又刪掉
vendor\haocheng\proprietary\frameworks\core\config下的debug和nodubug目錄,只留下sdk目錄
再以後
vendor/haocheng/proprietary/frameworks/core/res/res/values /public.xml解析失敗,看了一下是第一行有空行,挨個把values的目錄的所有xml檢測一遍,都刪掉第一行的空行,
再編譯,又報out目錄下的Lohit-Odia.ttf版本錯誤,於是又修改了 frameworks/base/tools/layoutlib/rename_font/build_font_sin gle.py中的get_version方法,改完如下:
def get_version(string):
# The string must begin with 'Version n.nn '
# to extract n.nn, we return the second entry in the split strings.
string = string.strip()
if not string.startswith('Version '):
print string + ' is not a valid font'
#raise InvalidFontException('mal-formed font version')
return sanitize(string)
return sanitize(string.split()[1])
再編譯,又報
development/build/sdk.atree:49: couldn't locate source file: bin/etc1tool
就去development/build/sdk.atree中,把對應的行號的代碼註釋掉,
終於編譯成功了
在mt6735\out\host\linux-x86\sdk\full_hct6735_35gc_l1目錄下出現了android-sdk_1488448733_linux-x86.zip和android-sdk_1488448733_linux-x86文件夾,裏面就是SDK了