Proguard 会混淆目录,因此如果您正在寻找 android_res/raw 它可能不再被称为!
您可以向项目中的 proguard.cfg 文件添加规则,使其跳过某些文件。但在这种情况下,将原始资源移动到 assets 文件夹就可以了。
问题是 Webkit FileLoader 将尝试使用反射加载您的 R$drawable 类。如果您不向 proguard.cfg 文件添加任何保留规则,该类将被重命名,因此 Webkit 将无法加载您的资源。(取自Prevent Proguard 以删除特定的可绘制对象)。
这就是为什么 Android 使用 R 类命名系统来命名资源 - 一个唯一的查找 id,而不是通过文件的位置来引用文件
通过将文件放入 assets 文件夹中,您将绕过 R 类引用系统,并且一切正常。
您应该将您的 website.html 文件移动到 assets 文件夹并调用:
mv.loadUrl("file:///android_asset/wesite.html");
正如上面链接所建议的那样,应该可以将以下规则添加到您的 Proguard.cfg 文件中,以阻止资源位置被混淆:
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class **.R$*
请记住,混淆的工作方式是有原因的!
希望这可以帮助