1. 程式人生 > >android studio 3.0 -Aapt2Exception

android studio 3.0 -Aapt2Exception

系統打包工具異常,什麼鬼?

解決方案:

  在gradle.properties檔案裡新增:android.enableAapt2=false 。解決!!!

  那就有必要了解下AAPT了:

   AAPT-Android Asset Packaging Tool(android資源打包工具);

   對於怎麼構建apk的,借用google官網的一張圖,看一下流程:

   

  流程簡單說一下:

  1.工程的資原始檔(res下的檔案),通過AAPT打包成R.java類檔案(資源ID索引表),及arsc資原始檔;

  2.如果有AIDL(Android Interface definition Language),通過aidl工具,打包成java介面;

  3.R.java和aidl.java通過java編譯器編譯成.class檔案;

  4.class檔案和第三方jar或者library通過dx工具打包成dex檔案。dx工具的主要作用是將java位元組碼轉換成Dalvik位元組碼,在此過     程中會壓縮常量池,消除一些冗餘資訊等;

  5.apkbuilder工具會將所有沒有編譯的資源,.arsc資源,.dex檔案打包到一個完成apk檔案中中。

  6.簽名,5中完成apk通過配置的簽名檔案(debug和release都有),jarsigner工具會對齊簽名。得到一個簽名後的apk,signed.apk

  7.zipAlign工具對6中的signed.apk進行對齊處理,所謂對齊,主要過程是將APK包中所有的資原始檔距離檔案起始偏移為4位元組整數    倍,這樣通過記憶體對映訪問apk檔案時的速度會更快。對齊的作用主要是為了減少執行時記憶體的使用。