ubuntu下編譯apps應用模塊的一些問題總結

BWLXavier 8年前發布 | 6K 次閱讀 Android開發 移動開發

 預編譯: . build/envsetup.sh


默認情況下編譯會生成apk 和 odex 兩個文件,其中apk里面是不包含classes.dex文件的,因此不能直接安裝,如果要得到一個完整的apk 需要更改mk文件,有兩種辦法:
1.只更改需要編譯的app項目中mk文件,增加 LOCAL_DEX_PREOPT := false

  1. 上面的辦法只能更改一個項目,可以將整個framework的默認編譯設置一下:
    /build/core/java_library.mk
    查找 LOCAL_DEX_PREOPT := true
    修改為 LOCAL_DEX_PREOPT := false

    /build/core/package.mk
    查找 LOCAL_DEX_PREOPT := true
    修改為 LOCAL_DEX_PREOPT := false

    重新加載編譯環境  source build/envsetup.sh
    這樣就不再需要單獨為每個模塊設置了。

    需要注意的兩點:
    1.編譯的時候需要修改代碼文件,不然很可能out中得到的apk不是新的,一般來說當你發現mm很快結束,幾乎沒有打印出什么編譯信息的時候你就得考慮是不是沒有真正編譯。
    2.默認的app模塊AndroidManifest.xml文件需要按照 常規eclipse項目的AndroidManifest.xml修改下,不然很可能在某些手機上不能安裝(安裝包解析失敗),這主要是因為如下幾個因素導致的:
       android:versionCode="1"
       android:versionName="1.0"

       <uses-sdk
           android:minSdkVersion="8"
           android:targetSdkVersion="17" />
    經過一晚的折騰,總算編譯成功了,不容易啊,睡覺。
    </p>
 本文由用戶 BWLXavier 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!