2017-09-28 2 views
0
Fehler verursacht

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?

+0

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. –

+1

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? –

+1

(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). –

Antwort

0

das Problem ist die Bibliothek nicht verknüpft ist sie zwei Möglichkeiten zu verbinden vorschlagen

  • mit pod (Fortgeschrittene)
  • mit rnpm link (leicht), aber dieser Befehl
  • veraltet

so Um die Bibliothek zu verknüpfen, sollten Sie die

react-native link react-native-sqlite-storage

verwenden

dieser Befehl ist gleich rnpm link aber nicht

veraltete

wenn automatische Build andernfalls versuchen mit manueller Verknüpfung für iOS manually linking ios und android manually linking android

+0

Danke Mohamed, ich habe den reaktiven nativen Link 'react-native-sqlite-storage' Befehl ausgeführt und habe diesen Fehler' rnpm-install ERR! Bei der Verknüpfung ist etwas schief gelaufen. Fehler: spawn UNKNOWN'. Ich habe versucht, in Google nach diesem Problem zu suchen, und sehe, dass es sich um ein generisches Problem handelt. Und niemand hat sich zu diesem Thema geäußert, das mit dem SQLite-Speicher passiert. Irgendwelche Ideen? – John

+0

Ich habe auch weitere Informationen zu meiner Frage hinzugefügt, weil ich gerade versucht habe, das Projekt zurückzusetzen und neu aufzubauen. – John

+0

verwenden Sie Windows? –