2016-11-20 62 views

回答

0

添加以下行的ProGuard:

-keepclassmembers class **.R$* {public static <fields>;} -keep class **.R$*

更新

如果有你想保留或丟棄特定的資源,在項目中創建一個XML文件有<resources>標籤並在tools:discard屬性中指定要保留在tools:keep屬性中的每個資源以及要放棄的每個資源。這兩個屬性都接受逗號分隔的資源名稱列表。您可以使用星號作爲通配符。

例如:

<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*" tools:discard="@layout/unused2" />

將該文件保存在您的項目資源,例如,在RES /生/ keep.xml。該版本不會將該文件打包到APK中。

指定放棄哪些資源在刪除它們時可能看起來很愚蠢,但在使用構建變體時可能會有用。例如,您可能會將所有資源放入公共項目目錄,然後在知道某個給定資源似乎在代碼中使用(因此不會被收縮器刪除)時爲每個構建變體創建一個不同的keep.xml文件,但你知道它實際上不會用於給定的構建變體。

https://developer.android.com/studio/build/shrink-code.html

+0

這會保留所有資源嗎? – Altaiir

+0

我有一個HTML文件在原始文件夾(關於應用程序的文件),我想保持從混淆不是一個特定的資源或佈局,HTML文件必須包裝與apk但不混淆 – Altaiir

+0

我在找所有信息關於這個問題,我偶然發現了這個博客,http://techan0.blogspot.com.eg/2015/08/proguard-observations.html?m=1這不是一個解決方案,但如果我理解的很好,我會將這個問題提供給我 –