1

我用我的 SQLiteHelperClass 创建了一个 SQlite 数据库。第一次创建后,我从 data/data/../databases 文件夹中提取它,对其进行编辑(我添加了内容)并将其再次推送到数据文件夹中。我使用 DDMS 来拉取和推送数据库。现在我的应用程序可以访问我的数据库中的所有数据。但只要用我的模拟器!当我用我的设备运行应用程序时,我无法访问数据库。应用程序似乎只是创建一个新的空数据库。所以我认为我设备上的 Data/Data/../Databases 文件夹是空的..

如果我在设备上上传应用程序,为什么我的模拟器创建的数据库会被删除?该应用程序怎么可能在我的模拟器上运行得很好,但在我的应用程序上却不行。

对不起,英语不是我的母语。我认为任何代码都没有帮助,问题的原因似乎是合乎逻辑的..

4

3 回答 3

0

您可以使用预先填充的数据库。将其保存在 Assets 文件夹中,然后将其复制到适当的位置 data\data\your packagename\database。

预填充数据库的完整示例在这里

于 2012-06-27T16:38:44.713 回答
0

为了创建您的数据库,您可以使用 SQLiteOpenHelper 类。

http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

于 2012-06-27T15:27:25.523 回答
0

如果您想在您的应用程序之外创建一个预加载的数据库并稍后在您的应用程序中使用它,您必须将它放在您的assets目录中,然后在您的应用程序databases第一次启动时将其复制到您的应用程序目录。

这是因为作为一项安全措施,在真实(无根)设备上,除了您自己的应用程序之外,什么都不能访问它们的data目录(包含databases目录)。

有一个很好的教程,用于在应用程序之外创建/复制您自己的数据库并将其复制到应用程序数据库目录

于 2012-06-27T15:28:10.290 回答