Ich versuche, wie auf dieser Seite hier beschrieben zu lernen, zu verwenden, reagieren-native-SQLite-storage:Grund Reagieren india SQLite Skript nicht definiert Rückkehr, die
https://github.com/andpor/react-native-sqlite-storage
ich auf einem Windows-Arbeits bin Maschine versucht, eine Android App zu bauen. Ich habe den folgenden Code:
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;
Als ich dies ausführen, erhalte ich die Fehler
undefined is not an object (evaluating 'NativeModules["SQLite"][method]')
Der Fehler auf der Linie geschieht var db = SQLite.openDatabase("test.db", "1.0", "Test Database", 200000, openCB, errorCB);
Ich vermute, dass der Grund der Fehler passiert ist weil SQLite die Existenz einer Datenbank erwartet, bevor Sie sie tatsächlich öffnen können. Ich sehe jedoch keine Anweisungen im obigen Link, wie man eine Datenbank mit react-native-sqlite-Speicher erstellt, also bin ich mir nicht sicher, ob meine Annahme richtig ist. Außerdem nehme ich an, dass ich eine Tabelle für Angestellte haben müsste, aber wieder, der Link oben erwähnte nicht ausdrücklich Beispiele, wie man einen erstellt. Also ich weiß nicht, ob meine Annahme richtig ist.
Wie bekomme ich SQLite.OpenDatabase() Befehl zu arbeiten?
Weitere Informationen
ich mein Projekt gelöscht. Dann habe ich versucht, alles erneut zu installieren, dieses Mal genau die Installationsanweisungen für sqlite-Speicher für Android, wie auf den andor-GitHub-Anweisungen erwähnt (dh Ändern von Gradle-Dateien, Update MainApplication-Klasse usw.). Nachdem ich das getan hätte, react-native run-android
man den Befehl von der CLI verursacht diese Build-Fehler:
ERROR EPERM: operation not permitted, lstat 'C:\Users\John Lai\Projects\ReactNative\myapp\android\app\build\intermediates\exploded-aar\myapp\realm\unspecified\jars\classes.jar' {"errno":-4048,"code":"EPERM","syscall":"lstat","path":"C:\Users\John Lai\Projects\ReactNative\myapp\android\app\build\intermediates\exploded-aar\myapp\realm\unspecified\jars\classes.jar"} Error: EPERM: operation not permitted, lstat 'C:\Users\John Lai\Projects\ReactNative\myapp\android\app\build\intermediates\exploded-aar\myapp\realm\unspecified\jars\classes.jar' at Error (native)
Ich habe versucht, diesen Befehl als normalen Benutzer ausgeführt wird und als Administrator, und immer noch das gleiche Problem.
Weitere Informationen 2
ich mein Projekt gelöscht. Dann habe ich npm install
für alle meine Projekte gemacht. Dann habe ich versucht, die Befehle rnpm link
und react-native link react-native-sqlite-storage
, die beide diese Fehler gab:
ERR! It seems something went wrong while linking. Error: spawn UNKNOWN Please file an issue here: https://github.com/rnpm/rnpm/issues
So, jetzt wird das Projekt nicht einmal bauen. Irgendwelche Ideen?
Aus dem Fehler, das ist das Modul eher wie ein Problem mit der Art und Weise sieht wird importiert, anstatt dass die Funktion erfolgreich aufgerufen wird und sich später falsch verhält. Das heißt, ich vermute, Mohamed hat das Recht darauf. –
Also, "lstat" ist eine Anfrage, um Metadaten für einen Symlink zu erhalten. Windows hat keine richtigen Symlinks, daher wundert mich das nicht. Haben Sie eine richtige UNIX-Box, an der Sie arbeiten können? –
(Sie könnten auch einen Windows-Portabilität-Fehler an das Produkt melden, das den Build-Prozess-Code zur Verfügung stellt, der den 'lstat' ausführt). –