Класс библиотеки предупреждений proguard android.webkit.WebView зависит от класса программы android.webkit.WebViewClien

У меня есть версия файла android.webkit.WebViewClient в исходном каталоге приложения, чтобы обрабатывать onReceivedSslError в моей собственной расширенной версии WebViewClient. Когда я использую новую интеграцию ProGuard в sdk-7, я получаю следующее предупреждение:

[Proguard] Предупреждение: класс библиотеки android.webkit.WebView зависит от класса программы android.webkit.WebViewClient

[Proguard] Предупреждение: в зависимости от классов программы было 1 экземпляр классов библиотеки. [Proguard] Вы должны избегать таких зависимостей, так как классы программы будут обрабатываться [proguard], а классы библиотеки останутся без изменений.

Может ли кто-нибудь сказать мне, как исправить это в моем proguard.cfg? Благодаря 🙂

Я столкнулся с одной и той же проблемой, и по proguard.cfg выше, я пишу эти строки в 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 

Попробуйте добавить в файл proguard.cfg или proguard-project.txt следующее:

 -dontwarn android.webkit.WebView 

Возможно, это немного поздно, но у меня была такая же проблема. Мне нужно было поддерживать SSL-соединения в WebView на андроидах ниже 2.2.

Я смог успешно построить apk с proguard, выполнив следующие действия:

  • Как сказано в комментариях – удалите файл android.webkit.WebViewClient из своего источника, вместо этого создайте свой собственный класс и расширьте оригинальный WebViewClient только с onRecieveSslError метода onRecieveSslError внутри (без переопределения).

  • Замените существующее использование WebViewClient новым

  • SslError можно оставить без изменений, поскольку на SDK 7 и ниже он не существует в открытом API, поэтому proguard его не заметит.

Вот и все.