首页 > 解决方案 > Android OS 似乎在 WebViewClient 中的文件下载链接上触发错误

问题描述

我遇到了一个奇怪的问题,我们网站上的某些下载链接会导致应用调用 WebViewClientonReceivedError方法。该应用程序正在从网站获得 200 响应,并且似乎正在我们的下载侦听器中正确处理所有内容,但介于两者之间onPageStartonPageFinished不断触发呼叫。此外,Android 文档实际上没有任何内容,ERR_FAILED而且我还没有在网上找到其他似乎可以解释它的信息。这是我们的应用程序自身发生的错误的日志记录。

Legacy Error :: onReceivedError, errorCode=-1, desc=net::ERR_FAILED

这是我可以从调试器获得的堆栈跟踪

onReceivedError:487, ****WebViewClient (com.****.webview)
handleMessage:128, on
dispatchMessage:107, Handler (android.os)
loop:237, Looper (android.os)
main:7762, ActivityThread (android.app)
invoke:-1, Method (java.lang.reflect)
run:493, RuntimeInit$MethodAndArgsCaller (com.android.internal.os)
main:1047, ZygoteInit (com.android.internal.os)

这令人沮丧,因为无论如何都会发生下载,而我能想出的唯一解决方案就是对“失败”的 url 进行特殊封装,这样当应用程序似乎表现得非常好时,我们实际上不会抛出异常。只是继续前进。这显然会遇到问题,因为引入了更多这些链接,因为它是一种被动解决方案而不是主动解决方案,并且并非所有下载链接都会遇到这个问题。另一件奇怪的事情是,这不会在模拟器中触发,这意味着在实际设备上存在一些导致错误的差异。

标签: androidandroid-webview

解决方案


推荐阅读