首页 > 解决方案 > Android Webview Chromium UnitTests 失败并出现 java.lang.NoSuchMethodError

问题描述

当我们想要使用 Robolectric 版本 4.3.1 和 Mockito 版本 2.18.3 创建单元测试时,我们目前正面临这个 NoSuchMethod 错误

例外:

java.lang.NoSuchMethodError: 'void com.android.webview.chromium.WebViewChromium.<init>(com.android.webview.chromium.WebViewChromiumFactoryProvider, android.webkit.WebView, android.webkit.WebView$PrivateAccess, boolean)'

这是我们所做的代码:

mWebView = Mockito.spy(
            new WebviewChromium(
                mockWebViewChromiumProvider, webView, webView.new PrivateAccess(), false));

在BUILD.gn中,我们已经包含了“//android_webview/glue:glue_java”作为依赖,我们可以成功编译代码但听起来在运行时,它引用了另一个错误的jar,有人知道如何配置构建文件以使用正确的 jar 或有关如何解决此错误的任何想法?

标签: androidmockitochromiumrobolectricwebviewchromium

解决方案


你检查了这个followjng线程https://github.com/robolectric/robolectric/issues/5092和这个我认为你需要打开jdk 11或13我最近在将open jdk 13添加到android studio后遇到了同样的问题它解决了我的问题问题 robolectric 开始正常工作,您也可以检查以下线程https://github.com/robolectric/robolectric/issues/5092


推荐阅读