NoSuchMethod для org.chromium.android_webview.AwContentsClientBridge $$ Lambda $ 1.run - PullRequest
0 голосов
/ 15 мая 2019

Эта проблема пришла от Crashlytics в моем приложении.В MyApplication у меня есть отображение Webview для отображения сайта.

-> Действительно не знаю, как воспроизвести эту проблему.

вот полные подробности журнала от Crashlytics:

     Fatal Exception: java.lang.NoSuchMethodError: No static method b()I in class Landroid/net/http/SslError; or its super classes (declaration of 'android.net.http.SslError' appears in /system/framework/framework.jar)
   at com.google.android.gms.internal.ads.zzbhb.onReceivedSslError(zzbhb.java:229)
   at com.android.webview.chromium.WebViewContentsClientAdapter.onReceivedSslError(WebViewContentsClientAdapter.java:453)
   at org.chromium.android_webview.AwContentsClientBridge$$Lambda$1.run(AwContentsClientBridge.java:2)
   at android.os.Handler.handleCallback(Handler.java:739)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:179)
   at android.app.ActivityThread.main(ActivityThread.java:5730)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)

Android: Имя устройства: Asus, Huwai, oppo Devie os: 6.0.1,5.0

1 Ответ

0 голосов
/ 15 мая 2019

Может быть, вы используете minifyEnabled true в своем скрипте gradle?

Вот правильный способ обработки ошибок ssl с переопределением onReceivedSslError в WebViewClient:

 override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {
        if (activity != null) {
            AlertDialog.Builder(activity)
                    .setTitle(SSL + " " + activity.getString(R.string.error))
                    .setMessage(error.toString())
                    .setPositiveButton(activity.getString(R.string.go_on)) { _, _ ->
                        handler.proceed()
                    }
                    .setNegativeButton(R.string.cancel) { _, _ ->
                        handler.cancel()
                    }
                    .create()
                    .show()
        } else {
            handler.cancel()
        }
    }

ОБНОВЛЕННЫЙ ПРИМЕР ИСПОЛЬЗОВАНИЯ В КОТЛИНЕ:

  webView.webViewClient = object: WebViewClient(){
                override fun onReceivedSslError(view: WebView, handler: SslErrorHandler, error: SslError) {
                    if (activity != null) {
                        AlertDialog.Builder(activity)
                                .setTitle(BaseTopSportWebViewClient.SSL + " " + activity.getString(R.string.error))
                                .setMessage(error.toString())
                                .setPositiveButton(activity.getString(R.string.go_on)) { _, _ ->
                                    handler.proceed()
                                }
                                .setNegativeButton(R.string.cancel) { _, _ ->
                                    handler.cancel()
                                }
                                .create()
                                .show()
                    } else {
                        handler.cancel()
                    }
                }
            }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...