Konfigurieren von proguard für javascript-Schnittstelle?
Ich habe implementiert eine Webview, die nimmt die Verwendung von JavascriptInterface. Es ist gut, wenn nicht zu verschleiern, aber auf einmal Proguard aktiv ist, funktioniert es nicht. Ich habe mir hier auf andere Antworten, aber ich kann immer noch nicht bekommen es funktioniert.
Einige der WebView Klasse:
public class Activity_Webview {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptInterface (), "HTMLOUT");
webView.setWebViewClient(mWebViewClient);
}
public class JavaScriptInterface implements NonObfuscateable{
@JavascriptInterface
public void processHTML(String html) {
handleFinishFromWebView(html);
}
}
, Was ich versucht habe in Proguard:
-keep public class * implements com.project.NonObfuscateable
-keepclassmembers class * implements NonObfuscateable {
public void processHTML(java.lang.String);
}
Ich habe auch versucht diese (wenn nicht die Umsetzung NonObfuscateable Schnittstelle:
-keep public class com.project.Activity_Webview.JavaScriptInterface
-keep public class * implements com.project.Activity_Webview.JavaScriptInterface
-keepclassmembers class * implements com.project.Activity_Webview.JavaScriptInterface {
<fields>;
<methods>;
}
Hat jemand eine Idee, was falsch sein könnte?
Vielen Dank im Voraus
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sowohl Ihre Konfigurationen könnte gearbeitet haben, hätten Sie nicht enthalten Tippfehler:
ProGuard muss voll qualifizierten Namen:
NonObfuscateable
->com.project.NonObfuscateable
Kompilierte Klassen, die mit '$' als Trennzeichen für innere Klassen:
com.project.Activity_Webview.JavaScriptInterface
->com.project.Activity_Webview$JavaScriptInterface
In der Konsole anmelden, ProGuard druckt Notizen über solche vermutete Tippfehler.
Einer Allgemeinen Lösung für die Aufbewahrung kommentierte Javascript-Schnittstelle-Methoden:
In meinem Fall Arbeit nur code:
proguard.cfg:
Java-code:
Wenn Sie mit Verbergung, zusätzlich zu Eric Lafortune Antwort Sie auch benötigen:
http://proguard.sourceforge.net/manual/usage.html#obfuscationoptions