Gil*_*bou 16 optimization android proguard drawable
在我的Android项目中,我有一些存储在res/drawable /中的图像,这些图像只能从Webview中加载的HTML文件中访问.例如(HTML代码):
<img src="file:///android_res/drawable/myfriend.png">
Run Code Online (Sandbox Code Playgroud)
这些图像在优化过程中由Proguard从apk中删除.
有人知道保存这些文件的方法(即使它们没有直接在java代码中使用)吗?
小智 30
我有一个类似的问题,并希望只添加几个位.
资源不会被ProGuard剥夺.如果您只是解压缩您的apk,您将看到图像文件仍然存在.
问题是Webkit FileLoader将尝试使用反射加载您的R $ drawable类.如果您没有向proguard.cfg文件添加任何保留规则,那么将重命名该类,因此Webkit将无法加载您的资源.
通过将文件放入assets文件夹,您可以绕过R类系统,一切都会正常工作.
例如,如果您想为不同的密度使用不同的资源,这不是解决方案.
我建议您只需添加一个非常基本的保留规则来保留R内部类和字段:
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class **.R$*
Run Code Online (Sandbox Code Playgroud)
我将图像移至“资产”文件夹,这解决了我的问题:
<img src="file:///android_asset/myfriend.png">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6927 次 |
| 最近记录: |