android - 如何找到我的 sqlite 在 Android 中泄漏的位置

标签 android sqlite android-debug

当我运行应用程序并执行一些操作时,我得到,

数据库“/data/user/0/project/database.db”的 SQLiteConnection 对象已泄露!请修复您的应用程序,以正确结束正在进行的事务,并在不再需要数据库时关闭数据库。

我如何调试这个

最佳答案

自 GINGERBREAD 以来,ANDROID 引入了功能,供开发人员检测可关闭的泄漏对象。

private static final boolean DEVELOPER_MODE = true;

if (DEVELOPER_MODE) {
        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .penaltyDeath()
                .build());
    }

在您想要检测泄漏的可关闭对象的 Activity 中使用此代码块。

希望这对您有帮助...

关于android - 如何找到我的 sqlite 在 Android 中泄漏的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36233611/

相关文章:

android - getContentResolver().query(Browser.BOOKMARKS_URI 返回 null

datetime - 将unix时间转换为字符串的Powershell函数?

c# - System.Data.SQLite - 无法访问加密数据库

node.js - 如何在 Visual Studio Code 中的 JavaScript/Node.js 文件中语法高亮/自动完成/自动格式化 SQL 命令?

android - 如何为 Retrofit 配置调试和发布日志级别?

android - 启用 "Installl via usb"时出现红米设备问题

android - 成功构建但应用程序不断崩溃 - android studio

java - 如何使用来自 firebase 的嵌套对象填充 RecyclerView

java - 如何将 URL 字符串末尾的低分辨率图像引用替换为可用的高分辨率图像引用

android - 我如何首先在 imageview 中加载模糊图像,然后使其清晰,以增强用户体验,对于 android?