android 編譯SDK

在做一個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了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章