A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!

详细异常:

A SQLiteConnection object for database ‘/data/data/.../databases/....db‘ was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed

明显是数据库操作异常,数据库对象被锁,明确告诉你对象长久不用需要关闭。

改正:获取数据库对象改成单例模式,项目运行中只保证唯一一个对象即可。如下:

private static XXXXSQLHelper mInstance = null;

public synchronized static XXXXSQLHelper getInstance(Context context) {
if (mInstance == null) {
mInstance = new XXXXSQLHelper(context);
}
return mInstance;
};

调用如下:

public XXXXDBUtil(Context context) {
mSQLiteDatabase = XXXXSQLHelper.getInstance(context)
.getWritableDatabase();
}

注意:此时数据库对象是唯一实例了,不需要close了,如果close掉,将会出现对象已关闭的严重异常,导致程序崩溃。

A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!

时间: 2024-10-10 01:57:13

A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!的相关文章

数据库内存泄漏——A SQLiteConnection object for database '/data/data/.../databases/....db' was leaked!

详细异常: A SQLiteConnection object for database '/data/data/.../database/....db' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed 明显是数据库操作异常,数据库对象被锁,明确告诉你对象长久不用需要关闭.

sqlite3_open_v2("/data/data/com.xxx.xxx/databases/xxx.db", &handle, 6, NULL) failed

最近做的一个项目需要适配android 2.3.3平台,在项目导入阶段遇到一个数据库的问题,在此记录下问点log和初步解决方案. 看log I/Database( 1135): sqlite returned: error code = 14, msg = cannot open file at source line 25467 E/Database( 1135): sqlite3_open_v2("/data/data/com.xxx.bluetooth/databases/bt_conta

DataBase vs Data Warehouse

Database https://en.wikipedia.org/wiki/Database A database is an organized collection of data.[1] A relational database, more restrictively, is a collection of schemas, tables, queries, reports, views, and other elements. Database designers typically

安卓data./data没数据的时候

1  如果在环境变量中设置了 D:\AndroidDevp\adt-bundle-windows-x86_64-20131030\sdk\platform-tools 就直接cmd就可以, 如果没有设置环境变量需要定位到这个目录 2 如果要读取某个项目下的sqlite 的数据库 如 database_name 则你要定位到数据库目录 依次定位到目录 如 adb shellsuchmod 777 /datachmod 777 /data/datachmod 777 /data/data/cn.it

解决查看不了/data/data目录的问题

最近开发换了个手机,由于使用到了数据库,调试的时候进去看看数据库. 导出的时候,报了个权限拒绝的错误,研究了下,发现data目录对其他用户的权限是不可读的,所以导致了打不开这些目录的问题. 既然问题找到了,接下来解决就轻松了. 1.确保手机已经root过,一般手机很容易root,针对小米手机得刷个开发版,才能获取root权限.这里就不多说了. 2.adb连上手机后,打开Android device monitor图形化界面,在右边的file explorer中可以看到目录结构. 3.dos打开,

[Android Tips] 10. Pull out /data/data/${package_name} files without root access

#!/usr/bin/env bash PACKAGE_NAME=com.your.package DB_NAME=data.db rm -rf ${DB_NAME} adb shell "run-as ${PACKAGE_NAME} chmod 666 /data/data/${PACKAGE_NAME}/databases/${DB_NAME}" adb pull /data/data/${PACKAGE_NAME}/databases/${DB_NAME} /tmp/ adb s

android DDMS 连接真机(己ROOT),用file explore看不到data/data文件夹的解决办法

问题是没有权限,用360手机助手或豌豆荚也是看不见的. 简单的办法是用RE文件管理器(授予root权限),把data和data/data设置成777权限 注意:用RE管理器打开看到默认不是777的,只是可读写还是不够的. 另外就是使用adb shell命令,但android下的shell是阉割了的 不能用-R参数 既使su到root帐号也执行不了 C:\Documents and Settings\Administrator>adb shell [email protected]_spyder:

Android之DDMS无法查看/data/data目录

问题: 今天想查看一下app下面的数据库文件,打开DDMS视图,然后在file explorer里面找到data路径,点击左侧的展开图标,发现无法展开. 解决方法: 1.首先确定自己的手机是root过了的:(小米手机需要使用开发版,稳定版无法root) 2.如果你没有配置android sdk环境变量,就到你的android sdk路径下面找到platform tools目录下: 3.打开开始----->运行---->cmd,cd到platform tools目录: 4.在MS-DOS界面输入

Android中对/data/data/<package name>/files下文件操作

/data/data/<package name>/files /data/data/ 该路径为系统内部存储文件路径,即:/data/data/<package name>/,各路径都是基于你自己的应用<package name>的内部存储路径下. 注:所有内部存储中保存的文件在用户卸载应用的时候会被删除. 一. files 1. Context.getFilesDir(),该方法返回/data/data/<package name>/files的File对