6

我的应用程序源目录中有一个版本的文件 android.webkit.WebViewClient,以便在我自己的 WebViewClient 扩展版本中处理 onReceivedSslError。当我在 sdk-7 中使用新的 ProGuard 集成时,我收到以下警告:

[proguard] Warning: library class android.webkit.WebView depends on program class android.webkit.WebViewClient

...

 [proguard] Warning: there were 1 instances of library classes depending on program classes.
 [proguard]          You must avoid such dependencies, since the program classes will
 [proguard]          be processed, while the library classes will remain unchanged.

谁能告诉我如何在我的 proguard.cfg 中解决这个问题?谢谢 :)

4

3 回答 3

23

我遇到了同样的问题,根据上面的提示,我将这些行写入proguard.cfg并解决了问题:

-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
于 2012-11-06T10:51:31.160 回答
0

尝试在 proguard.cfg 或 proguard-project.txt 文件中添加以下内容:

-dontwarn android.webkit.WebView
于 2012-04-11T22:58:18.147 回答
0

这可能有点晚了,但我遇到了同样的问题。我需要在WebView低于 2.2 的 android 上支持 SSL 连接。

通过以下操作,我能够成功地使用 proguard 构建 apk:

  • 正如评论中所说 -android.webkit.WebViewClient从您的源代码中删除,而是创建您自己的类并扩展原始类,WebViewClient其中只有onRecieveSslError方法(没有覆盖)。

  • 用新的替换现有的WebViewClient使用

  • SslError可以保持不变,因为在 SDK 7 及更低版本中它不存在于开放 API 中,因此 proguard 不会注意到它。

就是这样。

于 2012-05-05T13:44:12.453 回答