使用Android 11会产生大量关于访问SQLiteDatabase接口的输出日志。

24

我在模拟器中使用API 30-Android 11.0。每当我运行我的应用程序时,我会在日志中收到200多行以下消息:

    Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z 
(greylist-max-o, linking, denied)

但是,就我的应用而言,我甚至没有使用数据库。在谷歌搜索中,我找到了这个链接,其中基本上提到了所有在Android 11中添加到SDK的非SDK接口。

那么,既然我的应用程序甚至没有使用任何数据库,为什么我会收到那条消息的许多日志呢?


你是对的。看起来我的应用程序内部存储中确实有一个数据库文件夹。有没有办法知道是哪个库在使用并可能阻止该库?@CommonsWare - ProgrammingEnthusiast
数据库的名称是什么?我们可能可以从中做出一些有根据的猜测。请记住,您可能不希望阻止库 - 您的应用程序拉入库的原因有很大的机会。 - CommonsWare
我不知道数据库的名称,因为我没有使用任何数据库。但是,如果你指的是文件夹名称,那就是 databases。@CommonsWare - ProgrammingEnthusiast
哦,抱歉,我假设在“databases/”中有一个文件。 WebView 可能会单独存储它自己的数据库,但我不知道它是否使用 SQLiteDatabase - CommonsWare
那么,有任何想法应该怎么做吗?@CommonsWare - ProgrammingEnthusiast
显示剩余6条评论
3个回答

50

我有一个类似的问题,我的简易应用程序明确没有使用SQLite。看起来是由于Android Studio中的数据库检查器引起的。

解决方案很简单:

  1. 重新启动Android Studio。
  2. 除非需要它,否则不要点击数据库检查器选项卡。

从这些问题[1][2]来看,数据库检查器可能会导致问题,并且没有找到禁用它而无需重新启动Android Studio的方法。


3
我从未碰过那个选项卡 :< - ProgrammingEnthusiast
1
可能是错误操作 @ProgrammingEnthusiast 我也遇到过这种情况... - liad horovitz
我真的花了好几个小时来找我到底搞砸了什么。简直不敢相信这就是问题所在!谢谢! - Seven
1
这对我也起作用了。只想补充一下,这也导致我的应用在我的物理设备上启动时停止响应了几毫秒。 - kefs
1
没有帮助。我正在使用 Android Studio Arctic Fox | 2020.3.1。 - Alex

1

我也遇到了同样的问题,而且我从未使用过数据库检查器。我的 Android 10 手机没有收到这条消息,但我的 Android 11 设备却有。将 minSdkVersion 提高到 29 似乎可以消除日志垃圾。


-2
在我的情况下,这是由于安卓模拟器引起的。
我已经尝试在我的真实手机上运行它,实际上它运行良好!
另外,请考虑使用更新版本的 API 创建一个新的模拟器。

4
我在实体手机上也会遇到这个问题! - Bink

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接