Android 4.2.2信号11 sigsegv:无法匹配类Webresourcerequest和Webresourc



我正在处理一个在Android 6.0上运行时正常工作的应用程序。当我尝试在4.2.2上运行它时,它会完全使用信号11 sigsegv。

完全崩溃。

就在此崩溃之前,逻辑显示了此错误:

dalvikvm: Unable to match class for part: Landroid/webkit/WebResourceRequest;Landroid/webkit/WebResourceError

这告诉我,我正在使用4.2.2中不可用的两个类。除了任何工具都没有抓到的事实外,我还确保不会发生这种情况,因为在使用这些类的方法之前,我使用这些类的每个地方都会在使用这些类的方法之前放置正确的@targetapi注释。例如:

@RequiresApi(android.os.Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
   ...
}

@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
   ...
}

我不知道我在做什么错。也许这两个错误彼此没有关系?

@TargetApi只是一个注释并抑制棉布错误。您需要手动检查构建版本并使用允许的类和方法

例如

@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
  return super.shouldInterceptRequest(view, request);
}

在API级别21中添加,但在API级别11

中添加了不建议的方法
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
  return super.shouldInterceptRequest(view, url);
}

您可以根据构建版本创建WebViewClient的几个实例

相关内容

  • 没有找到相关文章

最新更新