1. 程式人生 > >Android問題集之打包時避免刪除無用資原始檔

Android問題集之打包時避免刪除無用資原始檔

問題描述

在build中如果同時開啟以下兩個選項,那麼打包時就會進行混淆並且會刪除無用的資原始檔。

// 程式碼混淆
minifyEnabled true
// 移除無用的resource檔案
shrinkResources true

雖然刪除無用資源能有助於較小apk大小,但是偶爾也會遇到一些問題。
比如用到一些第三方的東東,需要匯入它的資源,但是在程式碼中又沒有明確的引用這些資源,那麼打包的時候就會刪除這些資原始檔,導致使用的時候會載入不到資原始檔而出現異常報錯。

解決方案

在專案的src/main/res目錄下,新增raw/keep.xml檔案,內容如下

<resources
xmlns:tools="http://schemas.android.com/tools" tools:keep="@drawable/yw_1222_*,@drawable/res_name" />

這裡的@drawable/yw_1222_*和@drawable/res_name就是那些需要避免被刪除的資原始檔,多個資原始檔之間用”,”符號分開。