2017-02-02 1 views
0

Gibt es eine Möglichkeit, meine react-native Code in einem separaten Ordner zu halten, und sowohl von Android-und iOS-Projekten verwendet werden?Run native für Android aus freigegebenen JS-Ordner

Ich habe derzeit eine Anwendung, die für iOS und Android existiert. Ich muss reactive-native für die Anwendung verwenden und habe einige Probleme. Ich habe eine 3-Ordner-Struktur, um dies zu erreichen: Android, iOS und JS. Derzeit habe ich das iOS-Projekt ordnungsgemäß funktioniert, aber das Android-Projekt ist, wo das Problem auftritt. Wenn ich die Android-Anwendung auf einem Emulator oder Gerät ausführen, erhalte ich den Fehler Could not connect to development server.

für meine Aktivität Mein Setup ist so:

reactRootView = new ReactRootView(this); 
reactInstanceManager = ReactInstanceManager.builder() 
    .setApplication(getApplication()) 
    .setJSMainModuleName("index.android") 
    .addPackage(new MainReactPackage()) 
    .setUseDeveloperSupport(true) 
    .setInitialLifecycleState(LifecycleState.RESUMED) 
    .build(); 
reactRootView.startReactApplication(reactInstanceManager, "SimpleApp", null); 
setContentView(reactRootView); 

Wenn ich dies ausführen, zeigt das Fehlerfenster an den Server keine Verbindung herstellen kann, die eine ganz andere IP-Adresse als mein localhost (auf dem Computer) ist.

Ich habe versucht, auf dem Gerät zu laufen und den Befehl adb reverse zu tun, aber das Ergebnis ist das gleiche.

Ich habe auch versucht, und fügte hinzu:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     preferences.edit().putString("debug_http_host", "localhost:8081").apply(); 

Aber dies führt noch im gleichen Fehler.

Antwort

0

Verwendung von nativen Code zusammen mit JS ist ein wenig umständlich (ich weiß nicht, ob es funktioniert oder nicht) Sie können Ihre Anwendung für iOS und Android erstellen, indem Sie einfach den Code einmal in js mit reactive native.And wie schreiben Ihr Konnte keine Verbindung zum Entwicklungsserver herstellen Sie müssen in den Stammordner Ihrer App gehen und react-native Start ausführen, die den Packer ausführen wird. Lesen Sie den folgenden Link für ein Tutorial über reaktive native React-native

+0

Ich bin derzeit react-native aus dem JS-Ordner ausgeführt, und ich kann einen Browser im Emulator öffnen und auf localhost: 8081/index.android.js zeigen und die Datei anzeigen. Die Anwendung kann jedoch nicht. Ich denke, dass es mehr mit meinem 'ReactInstanceManager'-Setup zusammenhängt. – macandyp

Verwandte Themen