2015-10-21 2 views
7

Ich bin derzeit ein bisschen mit Reaktion native kämpfen. Was ich haben möchte, ist ein Bibliotheksprojekt basierend auf reaktionsnativen, die ich dann in einige meiner Apps aufnehmen kann.Android-Bibliothek Projekt mit React Native

Das erste, was ich ausprobiert habe, war, den gesamten grundlegenden Setup-Code [1] in ein Fragment innerhalb einer bestehenden App zu verschieben. Dies funktionierte ohne Probleme.

Dann habe ich ein komplett neues Android-Projekt mit einer leeren Aktivität gestartet. In dieses Projekt habe ich ein neues Android-Bibliothek-Projekt-Modul hinzugefügt, das das "native Fragment reagieren" enthalten sollte. Ich habe das reaktive native Projekt dann in meinem Root-Projektordner initialisiert.

Mein aktuelles Projekt Struktur sieht wie folgt aus:

ReactApplication 
- basic files (index.android.js, index.ios.js, package.json, build.gradle, settings.gradle) 
- app/ (contains the real native android app which includes the "react native fragment") 
- reactlib/ (library project which contains a fragment with the code from [1]) 
- ios/ 
- node_modules/ (contains react-native) 

Starten des dev-Server über npm start funktioniert ohne Probleme, aber sobald ich die Android-App starten bekomme ich die folowwing logcat Ausgänge:

W/unknown:React(26957): Unable to dispatch keyboard events in JS as the react instance has not been attached 
W/unknown:React(26957): You seem to be running on device. Run 'adb reverse tcp:8081 tcp:8081' to forward the debug server's port to the device. 
E/(26957): Unable to load script from assets: index.android.bundle 
E/ReactNative(26957): Got JS Exception: ReferenceError: Can't find variable: require 

Bitte beachten Sie, dass ich die adb reverse tcp:8081 tcp:8081 Sache gemacht habe und der Fehler immer noch auftaucht.

Später möchte ich eine aar aus dem Android-Bibliotheksprojekt erstellen und über Maven zugreifen.

Was mache ich falsch? Oder ist das was ich machen will einfach nicht möglich?

[1] https://facebook.github.io/react-native/docs/embedded-app-android.html#add-native-code

Antwort

3

Nachdem das Debuggen und Ausprobieren paar Dinge, dachte ich, dass es die Bundle-Datei vom Server zu laden, schlägt fehl, wenn in aar gebündelt.

Wenn Sie index.android.bundle in android Assets Ordner hinzufügen, beginnt es zu arbeiten.

+0

wenn index.android.bundle nicht existiert? – Zakos