android studio 3.0 -Aapt2Exception
阿新 • • 發佈:2018-12-04
系統打包工具異常,什麼鬼?
解決方案:
在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檔案時的速度會更快。對齊的作用主要是為了減少執行時記憶體的使用。