aapt資源重複覆蓋整合

aapt:
-f 若是編譯出來的文件已經存在,強制覆蓋。
-m 使生成的包的目錄放在-J參數指定的目錄。
-J 指定生成的R.Java的輸出目錄
-S res文件夾路徑(能夠添加多個資源)
-A assert文件夾的路徑
-M AndroidManifest.xml的路徑
-I 某個版本平臺的android.jar/依賴庫的路徑
-F 具體指定apk文件的輸出
將工程的資源編譯R.java文件
aapt package -m -J <R.java目錄> -S <res目錄> -I <android.jar目錄> -M <AndroidManifest.xml目錄>
將工程的資源編譯編譯到一個包裏
aapt package -f -S <res目錄> -I <android.jar目錄> -A<assert目錄> -M <AndroidManifest.xml目錄> -F <輸出的包目錄>java

多資源整合例子:
res:資源目錄
ForRes:資源目錄
./aapt package -f -S res -S ForRes -M AndroidManifest.xml --auto-add-overlay  -I android.jar -F ./myres.apk
兩個資源整合進myres.apk

--auto-add-overlay:整合覆蓋重複資源  res覆蓋ForRes資源
value下的attrs.xml不會自動整合覆蓋,須要另外處理

依賴其它庫資源例子:
使用constraint-layout-1.0.2.aar依賴庫(-I爲添加依賴庫)
aapt package -f -S res -S ForRes -M AndroidManifest.xml --auto-add-overlay  -I android.jar -I constraint-layout-1.0.2.aar -F  ./myres.apk
當引用v7/v4等其它庫的資源時,使用aapt編譯時須要添加爲依賴基礎庫,不然會出現如下錯誤
res/values-v26/styles.xml:14: error: Error: No resource found that matches the given name: attr 'android:keyboardNavigationCluster
相關文章
相關標籤/搜索