setContentView使用非SDK界面

Ivá*_*mez 14 sdk android android-emulator

当我使用API​​ 28在仿真器中运行应用程序时,控制台会向我发出以下警告:

W / oaristachimene:访问隐藏的方法Landroid / view / View;-> computeFitSystemWindows(Landroid / graphics / Rect; Landroid / graphics / Rect;)Z(浅灰色列表,反射)W / oaristachimene:访问隐藏的方法Landroid / view / ViewGroup; -> makeOptionalFitsSystemWindows()V(浅灰色列表,反射)

我一直在调试它,但发现它来自调用:setContentView(R.layout.activity_main),所以还有另一种方法来设置活动的布局,或者该方法是否会被更新,以便在运行时不会发出警告具有android API 28的设备?

Dew*_*eed 25

对于这个问题的警告,computeFitSystemWindows以及makeOptionalFitsSystemWindows实际使用的支持库或通过反射androidx库。您可以通过简单地在中搜索这两种方法来进行验证AppCompatDelegateImpl

是的,他们违反了他们设定的一些规则。希望以后可以解决。

更新1

最近,当我在Firebase测试实验室中测试应用程序时,这2个API和其他一些API被标记为

造成此警告的根本原因可能是Google拥有的图书馆用户界面工具包。目前无需采取任何措施。

要么

此警告的可能根本原因是Google拥有的库Android WebView。目前无需采取任何措施。

  • 现在已经是 2020 年 9 月,并且具有最新的依赖项,我仍然收到此消息。我的内容视图肯定只包含 android 提供的视图类。 (18认同)
  • 2021 年 2 月,这些警告仍然......持续存在 (7认同)
  • 这里也是如此,现在是 2021 年 4 月 2 日。我想它们一定是无害的。我暂时不会担心他们。需要有关 Android P 之后的 Renderscript 兼容性问题的帮助 (3认同)
  • 2022 年 2 月仍在这里 (3认同)
  • 嘿@i_o 我也于 2021 年 4 月 2 日来到这里。我想我会继续忽略发布前的报告。 (2认同)
  • 2022 年 11 月,天哪,警告仍然存在。 (2认同)

Ben*_* P. 6

您传递给的布局 ID 很有可能setContentView()包含来自使用非 SDK 接口的 3rd 方库的一些视图。这个警告告诉你这正在发生,但你所能做的就是

  • 等待第 3 方修复他们的图书馆
  • 从布局中删除那些 3rd 方视图

目前,这只是一个警告;实际上没有什么不好的事情会发生。但在Android 的未来版本中,它可能会成为一个真正的问题。系统只是给你时间去弄清楚。