2012-04-07 8 views
4

Ich habe eine Version der Datei android.webkit.WebViewClient in meiner Anwendung Quellverzeichnis, um onReceivedSslError in meiner eigenen erweiterten Version von WebViewClient zu behandeln. Als ich die neue ProGuard Integration in sdk-7 verwenden, erhalte ich die folgende Warnung:Proguard Warnung Bibliothek Klasse android.webkit.WebView ist abhängig von der Programmklasse android.webkit.WebViewClien

[proguard] Achtung: Bibliotheksklasse android.webkit.WebView hängt von Programmklasse android.webkit.WebViewClient

...

[proguard] Warnung: Es gab 1 Instanzen von Bibliotheksklassen, abhängig von den Programmklassen. [proguard] Sie müssen solche Abhängigkeiten vermeiden, da die Programmklassen [proguard] verarbeitet werden, während die Bibliotheksklassen unverändert bleiben.

Kann mir jemand sagen, wie ich das in meiner proguard.cfg beheben kann? Thanks :)

+0

Sie sollten nicht über eine Bibliothek-Klasse im Quellverzeichnis setzen müssen. Können Sie die Framework-Klasse nicht einfach direkt erweitern? –

+0

Leider arbeite ich um den hier beschriebenen Fehler für Betriebssysteme vor Froyo http://damianflannery.wordpress.com/2010/09/28/android-webview-with-https-loadurl-shows-blankempty-page/ Weil es einige private apis, ich kann nicht einfach die Klasse erweitern :( – user1318700

Antwort

19

ich das gleiche Problem gestoßen, und durch von oben Hinweis, schreiben ich diese Zeilen in proguard.cfg und das Problem gelöst wird:

-keep public class android.net.http.SslError 
-keep public class android.webkit.WebViewClient 

-dontwarn android.webkit.WebView 
-dontwarn android.net.http.SslError 
-dontwarn android.webkit.WebViewClient 
+0

hat für mich gearbeitet. Danke – SimplyProgrammer

0

Versuchen Hinzufügen des folgend in Ihrer proguard.cfg oder proguard-project.txt Datei:

-dontwarn android.webkit.WebView 
0

Dies vielleicht ein bisschen spät, aber ich hatte das gleiche Problem. Ich musste SSL-Verbindungen in WebView auf Androiden niedriger als 2.2 unterstützen.

konnte ich apk mit proguard durch folgende erfolgreich bauen:

  • wie gesagt in den Kommentaren - entfernen android.webkit.WebViewClient von der Quelle, anstatt Ihre eigene Klasse erstellen und Original WebViewClient mit nur onRecieveSslError Methode innerhalb verlängern (keine überschreiben).

  • ersetzen bestehende WebViewClient Nutzung durch eine neues

  • SslError unverändert belassen werden kann, da auf SDK 7 und senken Sie es in offener API existiert nicht, so proguard wird es nicht bemerken.

Das ist es.