Titanium 未捕获没有这样的表:Ti.Database.install

Titanium 未捕获没有这样的表:Ti.Database.install,titanium,appcelerator,appcelerator-titanium,appcelerator-alloy,Titanium,Appcelerator,Appcelerator Titanium,Appcelerator Alloy,我正在使用Ti.Database.install安装我通过SQLite管理器创建的现有数据库。我在city表中也插入了一些数据。在IOS模拟器上,一切正常。当我尝试在Android设备上运行同样的程序时,我得到了一个错误:没有这样的表:城市代码1。我已将test.sqlite放在assets/db文件夹中 var database = Ti.Database.install('/db/test.sqlite', 'test'); Ti.API.debug('installed '+ datab

我正在使用Ti.Database.install安装我通过SQLite管理器创建的现有数据库。我在city表中也插入了一些数据。在IOS模拟器上,一切正常。当我尝试在Android设备上运行同样的程序时,我得到了一个错误:没有这样的表:城市代码1。我已将test.sqlite放在assets/db文件夹中

var database =  Ti.Database.install('/db/test.sqlite', 'test');
Ti.API.debug('installed '+ database.getName()  );

var db = Ti.Database.open('test');
Ti.API.debug('reopened db'  );

var rs = db.execute('SELECT * from city LIMIT 5');
while (rs.isValidRow()) {

   // Ti.API.info(rs.fieldByName('name'));
   // rs.next();
}

db.close();

此方法始终适用于使用单一代码库的Android/iOS。将数据库文件保留在此位置:

项目->应用->库->mydatabase.sqlite

然后,我在一个文件中使用以下代码,该文件也位于Android/iOS的同一lib目录中:

项目->应用->库->我的数据库.js:

注意:根据docs,install方法使用相同的目录方法获取参数路径,这意味着无论数据库文件位于何处,都必须在.js文件中运行安装代码,该文件必须位于相同的目录中

因此,上面的.sqlite文件位于该lib文件夹中,install script.js文件也位于该lib文件夹中,这进一步为您提供了一个只在1个文件中运行安装脚本的公共位置&您可以使用require'my_database'在任何地方使用该文件

try {
    var db = Ti.Database.install('mydatabase.sqlite', 'APP_DB_NAME');
    db.close();
} catch (ex) {}