8

我正在使用 Espresso 进行仪器测试并在 Android Preview P Emulator 上运行它们。我的测试类中有 5 个测试用例,其中一个测试在运行测试套件时失败并出现以下错误。

检测到 API 兼容性问题

而失败的测试用例在单独运行而不是在套件中运行时通过。

由于对话框显示在视图上,上面写着Detected problems with API compatibility,我没有在层次结构异常中找到匹配的视图以及上述错误。

4

2 回答 2

2

参考文档:在 Android P 中,此对话框显示

检测到 API 兼容性问题

为什么显示此对话框?

原因:您的代码命中

暗灰名单

什么是深灰名单 API?其他应用程序不允许调用的此类 api,在我的情况下,我使用的是深灰色列出的 startSoftAp 方法。删除该调用消失了对话框。

你会怎么找到?

在你的 logcat -> verbose -> Search("Accessing hidden")

LOGCAT 结果

访问隐藏方法:Landroid/net/wifi/WifiManager:startSoftAp(Landroid/net/wifi/WifiConfiguration;)Z(暗灰名单,反射)

于 2019-02-15T10:54:12.200 回答
2

将 targetSdkVersion 更改为 28(以前是 27)使问题消失。我认为在大多数情况下,这不是一个有效的解决方案,但就我而言,它允许我的项目继续进行。

于 2018-10-23T09:55:19.627 回答