Proguard verschleiert Verzeichnisse so, wenn Sie für android_res/raw suchen, ist es wahrscheinlich nicht mehr so genannt!
Sie können der proguard.cfg-Datei in Ihrem Projekt Regeln hinzufügen, die bestimmte Dateien überspringt. In diesem Fall reicht es aus, die rohe Ressource in den Ordner "Assets" zu verschieben.
Das Problem besteht darin, dass der Webkit FileLoader versucht, Ihre R $ Zeichenklasse mithilfe von Reflektion zu laden. Wenn Sie Ihrer proguard.cfg-Datei keine keep-Regel hinzufügen, wird diese Klasse umbenannt. Daher kann Webkit Ihre Ressource nicht laden. (entnommen aus Prevent Proguard to remove specific drawables).
Aus diesem Grunde ist Android das R-Klasse Benennungssystem für Ressourcen verwendet - eine uniquie Lookup-ID statt Verweisen auf die Dateien, die von ihrem Standort
Durch die Datei in das Vermögen platzieren Ordner Sie das R-Klasse Referenzierung System zu umgehen und Alles sollte gut funktionieren.
Sie sollten Ihre website.html-Datei in den Ordner verschieben Assets und rufen:
mv.loadUrl("file:///android_asset/wesite.html");
Wie bei den Link oben vorgeschlagen wird, sollte es möglich sein, die unter der Regel auf Ihre Proguard.cfg Datei hinzufügen zu die Ressourcen Standort stoppen obfucated stattdessen wird: die Verschleierung funktioniert, wie es funktioniert aus einem Grund
-keepclassmembers class **.R$* {
public static <fields>;
}
-keep class **.R$*
Bare daran!
hoffe, das hilft
Das obige funktioniert für die Proguard.cnf und Verschieben der Website in den Ordner Assets. Der Code sollte jedoch 'mv.loadUrl (" file: ///android_asset/wesite.html ") lauten;' ** Hinweis: ** 'android_asset' nicht' android_assets'. Ich danke Ihnen für Ihre Erklärung. – Ne0
Sie müssen nicht alle R-Klassen und ihre Felder behalten, es sollte möglich sein, einige Ressourcennamen, die Sie wirklich behalten möchten, auszuwählen und den Rest (z. B. Layout | xml | values) zu verschleiern. – TWiStErRob