创build数据库的Android权限

您好我有一些在android中创buildsqlite数据库的问题。

在模拟器上一切正常,我可以创build数据库。 但是在实际的机器上不起作用。 当我试图在手机上debugging应用程序时,它只是无法创build数据库。

那么谁能告诉我发生了什么? Manifest文件中是否需要添加特殊权限? 我试过ACCESS_CHECKIN_PROPERTIES或WRITE_EXTERNAL_STORAGE,但仍然无法获取数据库。

顺便说一句,自定义数据库只能存储在SD卡,但根目录?

非常感谢你!!

Solutions Collecting From Web of "创build数据库的Android权限"

没有任何错误反馈,就不可能告诉你代码中有什么问题。 不过,我可以告诉你,你不需要ACCESS_CHECKIN_PROPERTIES来使用你自己的数据库。 你不应该需要WRITE_EXTERNAL_STORAGE ,除非你正在尝试访问SD卡。

数据库默认存储在内部存储的应用程序文件夹的子文件夹中,即:

 /data/data/YOUR_APP/databases/YOUR_DATABASAE.db 

如果你在物理设备上这样做,它必须被植根。

我有完全一样的问题。 我的应用程序将在模拟器上创build一个数据库,读取和写入数据,但是在设备上崩溃。

我发现了一个非常简单的解决scheme:在/data/data/YOUR_APP/databases/YOUR_DATABASAE.db手动删除设备上的数据库,然后重新运行您的应用程序。

在我的情况下工作,希望它有帮助。

也许你有这个问题,因为你的手机上安装了先前版本的应用程序。 在安装新版本之前,尝试通过“应用程序pipe理器”来卸载以前的版本。 我以这种方式解决。

这很容易解决你必须没有添加.db扩展名在你的DataBase在数据库java文件中声明的名字例如, public static final String DB_NAME = "tasks.db";

不要忘记.db扩展

在第一次我检查权限和运行时获得许可,但由于targetSdkVersion是25,问题没有解决,使用db而不使用EXTENSION的.db总是很好,工作,但它看起来像targetSdkVersion 25需要EXTENSION的。分贝和我的问题解决了。