在我的Android項目中,我有一些圖片存儲在res/drawable /中,這些圖片從Web瀏覽器中加載的HTML文件訪問只有。例如(在HTML代碼):防止Proguard刪除特定的可繪製對象
<img src="file:///android_res/drawable/myfriend.png">
這些圖像由Proguard的優化過程中被除去從APK。
有人知道一種方法來保留這些文件(即使它們不直接在java代碼中使用)嗎?
在我的Android項目中,我有一些圖片存儲在res/drawable /中,這些圖片從Web瀏覽器中加載的HTML文件訪問只有。例如(在HTML代碼):防止Proguard刪除特定的可繪製對象
<img src="file:///android_res/drawable/myfriend.png">
這些圖像由Proguard的優化過程中被除去從APK。
有人知道一種方法來保留這些文件(即使它們不直接在java代碼中使用)嗎?
我感動的圖像,這解決了我的問題「資產」文件夾:
<img src="file:///android_asset/myfriend.png">
我也有類似的問題,想增加短短位。
資源不會被ProGuard剝離。 如果你只是解壓縮你的apk,你會看到圖像文件仍然存在。
問題是Webkit FileLoader會嘗試使用反射來加載您的R $ drawable類。如果您沒有將任何keep規則添加到您的proguard.cfg文件中,該類將被重命名,因此Webkit將無法加載您的資源。
通過將文件放置到資產文件夾中繞過R類系統,一切都將工作。
這不是一個解決方案,但是,例如,如果您想要爲不同的密度使用不同的資源。
我建議你只需添加一個非常基本保持規則保存[R內部類和字段:
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class **.R$*
在生成簽名的apk時給予proguard cfg異常 – 2016-03-17 07:40:42
你應該把這些類型的文件到你的資產的文件夾,並加載像mWebView.loadUrl(「文件:/ //android_asset/myfriend.png「); – 2011-06-08 14:33:48
你是對的。我將圖片移至「資產」文件夾,解決了我的問題。上面的行變成:
–
Gilbou
2011-06-08 14:54:49