android - 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 或有关如何解决此错误的任何想法?
解决方案
你检查了这个followjng线程https://github.com/robolectric/robolectric/issues/5092和这个我认为你需要打开jdk 11或13我最近在将open jdk 13添加到android studio后遇到了同样的问题它解决了我的问题问题 robolectric 开始正常工作,您也可以检查以下线程https://github.com/robolectric/robolectric/issues/5092
推荐阅读
- node.js - 如何分配承诺然后响应外部变量?
- javascript - NullInjectorError:没有 MatBottomSheetRef 的提供者
- javascript - 按字符串数组过滤javascript数组
- java - 使用 Android-Camera2 API 访问 USB 摄像头
- python - 如何从 numpy 数组创建 .fits 文件
- css - 如何在聊天室中将我的聊天条目与右侧对齐?
- php - 在 WooCommerce 快速订单预览中显示自定义字段
- flutter - 在 null 上调用了 getter 'classification'
- c# - 如何一次替换所有列表框项目
- javascript - 如何使用不和谐机器人创建 trello 卡