我试图学习如本页所述使用react-native-sqlite-storage:
https://github.com/andpor/react-native-sqlite-storage
我正在尝试构建一个Android应用程序的Windows机器。我有以下代码:
import SQLite from 'react-native-sqlite-storage';
function errorCB(err) {
console.log("SQL Error: " + err);
}
function successCB() {
console.log("SQL executed fine");
}
function openCB() {
console.log("Database OPENED");
}
var db = SQLite.openDatabase("test.db", "1.0", "Test Database", 200000, openCB, errorCB);
db.transaction((tx) => {
tx.executeSql('SELECT * FROM Employees a, Departments b WHERE a.department = b.department_id', [], (tx, results) => {
console.log("Query completed");
});
});
export default 1;
当我运行时,我收到错误
undefined不是一个对象(评估 ' NativeModules [" SQLite的"] [方法]&#39)
错误发生在var db = SQLite.openDatabase("test.db", "1.0", "Test Database", 200000, openCB, errorCB);
我怀疑错误发生的原因是因为SQLite在实际打开数据库之前需要存在数据库。但是,我没有在上面的链接中看到有关如何使用react-native-sqlite-storage创建数据库的任何说明,因此我不确定我的假设是否正确。此外,我假设我需要为员工提供一个表,但同样,上面的链接并没有明确说明如何创建一个表。所以,我不知道我的假设是否正确。
那么我如何让SQLite.openDatabase()命令工作?
更多信息
我删除了我的项目。然后我尝试再次重新安装所有内容,这次紧跟安德玛的sqlite存储安装说明,如andpor的github指令(即修改gradle文件,更新MainApplication类等等)。一旦我这样做,从CLI运行命令react-native run-android
会导致此构建错误:
ERROR EPERM:不允许操作,lstat' C:\ Users \ John 赖\项目\ ReactNative \ MYAPP \机器人\应用\构建\中间体\分解-AAR \ MYAPP \境界\未指定\罐子\ classes.jar' {"错误号": - 4048"代码":" EPERM""系统调用":" LSTAT",& #34;路径":" C:\用户\约翰 赖\项目\ ReactNative \ MYAPP \机器人\应用\构建\中间体\分解-AAR \ MYAPP \境界\未指定\罐子\ classes.jar"} 错误:EPERM:不允许操作,lstat' C:\ Users \ John 赖\项目\ ReactNative \ MYAPP \机器人\应用\构建\中间体\分解-AAR \ MYAPP \境界\未指定\罐子\ classes.jar' 在错误(本机)
我尝试以普通用户和管理员身份运行此命令,但问题仍然存在。
更多信息2
我删除了我的项目。然后我为我的所有项目做了npm install
。然后我尝试了命令rnpm link
和react-native link react-native-sqlite-storage
,这两个命令都出现了这个错误:
ERR!链接时似乎出了问题。错误:生成UNKNOWN 请在此处提出问题:https://github.com/rnpm/rnpm/issues
所以现在这个项目甚至没有建成。有什么想法吗?
答案 0 :(得分:0)
问题是库没有链接 链接他们建议两种方式
private static PlayerList FindYoungest(List<PlayerList> players)
{
return players.OrderByDescending(o => o.BirthdayDate).FirstOrDefault();
}
(简单)但不推荐使用此命令所以要链接库你应该使用
rnpm link
此命令等于react-native link react-native-sqlite-storage
但不推荐使用
如果自动构建失败,请尝试手动关联iOS manually linking ios和android manually linking android
答案 1 :(得分:0)
lstat命令错误在Windows上生成。
你可以做两件事来传递这个。 1.在管理模式下打开终端。 2.upgrade /降级npm版本
对于插件安装,请手动配置
答案 2 :(得分:0)
您需要使用以下命令更改MainApplication.java:
导入org.pgsqlite.SQLitePluginPackage;
和
在getPackages中:
新的SQLitePluginPackage()