Android P预览上的Espresso测试:检测到API兼容性错误的问题

问题描述 投票:8回答:2

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

检测到API兼容性问题

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

由于对话框显示在显示Detected problems with API compatibility的视图上,因此在层次结构异常中找不到匹配的视图以及上述错误。

android android-espresso android-9.0-pie
2个回答
1
投票

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


1
投票

引用docs:在Android P中,此对话框显示

检测到API兼容性问题

为什么要显示此对话框?

原因:你的代码命中了

黑暗的灰名单

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

你怎么找到的?

在您的logcat - >详细 - >搜索(“访问隐藏”)

LOGCAT结果

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

© www.soinside.com 2019 - 2024. All rights reserved.