React Native-SQLite找不到预填充的数据库文件

时间:2019-02-12 09:48:13

标签: sqlite react-native

我尝试将https://github.com/andpor/react-native-sqlite-storage用于SQLite。

我创建了一个sqlite数据库,并且该数据库已预先填充。

在我的本机项目中,我按照文档说明将players.db文件放入/www文件夹中。

但是当我从控制台检查时,打开数据库失败。 我无法打开预先填充的sqlite数据库。

我尝试了这些选项,但所有这些都不对我有用;

var db = SQLite.openDatabase({name : "players.db", createFromLocation : "~players.db"});

var db = SQLite.openDatabase({name : "players.db", createFromLocation :1});

var db = SQLite.openDatabase({name : "players", createFromLocation : "~players.db"});

控制台输出为:

OPEN database: players
Running application "SampleApp" with appParams: {"rootTag":31}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
new transaction is waiting for open operation
OPEN database: players failed, aborting any pending transactions

3 个答案:

答案 0 :(得分:2)

最后我找到了答案。

ProjectFolder/android/app/src/main/assets目录与/ www文件夹相同。因此,请勿将数据库文件放入/www。将其放入/android/app/src/main/assets文件夹。

比你可以像使用它

var db = SQLite.openDatabase({name : "players.db", createFromLocation : "~players.db"});

答案 1 :(得分:0)

如果您使用默认值,请尝试:

var db = SQLite.openDatabase({name : "players.db"});

这应该有效。

答案 2 :(得分:0)

在Android中,将数据库文件放置在“ PROJECT \ android \ app \ src \ main \ assets”目录中。如果您的数据库文件名不同(例如,players.db VS example.db),

  1. 其位置应为:PROJECT \ android \ app \ src \ main \ assets \ example.db
  2. 使用以下语言导入:

var db = SQLite.openDatabase({name : "players.db", createFromLocation : "~example.db", location: 'Library'});

如果文件名与数据库相同(都命名为players.db),则

  1. 其位置应为:PROJECT \ android \ app \ src \ main \ assets \ players.db
  2. 使用以下语言导入:

var db = SQLite.openDatabase({name : "players.db", createFromLocation : "~players.db", location: 'Library'});

如果您已经开始导入预先填充的数据库,请尝试执行以下步骤,从模拟器/手机中清除应用程序数据和/或完全卸载应用程序。