2015-09-16 28 views
15

quando si esegue "react-native run-android" La build viene distribuita all'emulatore e il programma viene eseguito correttamente. Ma dopo aver apportato modifiche ai file localmente, ho bisogno di eseguire "react-native run-android".cmd: react-native run-android su ogni modifica di file

In qualsiasi modo questo può essere fatto usando watchman, come succede per ios nativi.

Grazie

risposta

25

è necessario abilitare il ricaricamento dal vivo.

According to the tutorial:

Per Android, eseguire reagire-native-run Android dal Projectto installare l'applicazione generato dal proprio emulatore o dispositivo e avviare il server Node che consente di ricaricare il codice dal vivo. Per vedere le tue modifiche devi aprire il menu rage-shake (o scuotere il dispositivo o premere il pulsante menu sui dispositivi, premere F2 o Page Up per emulatore, ⌘ + M per Genymotion), quindi premere Reload JS.

+1

Nulla di ciò era effettivamente molto utile nel mio caso. Ho scritto una risposta alternativa basata sulle mie circostanze (forse uniche?). Grazie comunque. – arcseldon

+11

Per me su Ubuntu, utilizzando regolare 'android avd' e non Genymotion, solo uno che ha funzionato è CTRL + M. –

+5

@AleksandarPopovic Mille grazie per questa scorciatoia! Solo Ctrl + M funziona sul mio Windows 7 per Android Emulator – Alex

7

Apre il menu scossa rabbia. (F2/Pagina su) -> Impostazioni Dev -> Auto ricarica su cambio JS

+0

Oh mio Dio, grazie mille per questo, ero googling come per 3 giorni senza una soluzione per il mio progetto. –

+4

Se F2/Pagina su non funzionano, è possibile usare ctrl + m per aprire il menu scuotimento rabbia. – nrgwsth

20

Sto usando MacOS X, con Genymotion. Per qualche ragione, ancora da determinare, tutto ha funzionato, il simulatore ha funzionato e la mia app è stata implementata con "react-native run-android". Tuttavia, il "menù rabbia" sarebbe non visualizzare quando ho provato ad utilizzare il Command + M scorciatoia tastiera indicato nelle istruzioni here:

Per Android, eseguire reagire-native run-android da AwesomeProject a installa l'applicazione generata sul tuo emulatore o dispositivo e avvia il server del nodo che abilita il caricamento del codice in tempo reale. Per visualizzare le modifiche, è necessario aprire il menu rage-shake (scuotere il dispositivo o premere il pulsante di menu sui dispositivi, premere F2 o Pagina su per l'emulatore, ⌘ + M per Genymotion), quindi premere Ricarica JS .

Quindi in ultima analisi, ho scritto un piccolo script di shell (si può solo eseguire lo stesso comando direttamente dalla linea di comando nella shell bash etc) chiamato rageMenuAndroid.sh come segue:

#!/usr/bin/env bash 
adb shell input keyevent 82 

Questo avvia effettivamente il menu di rabbia. Da lì è semplice abilitare la ricarica live con React Native (il mio obiettivo), basta selezionare "Auto ricarica" e selezionare il pulsante "Reload JS" ogni volta che si desidera aggiornare.

Se qualcuno sa come visualizzare direttamente il "menu rabbia" sul simulatore, può inviare un commento qui sotto. Avere installato IOS è stato un gioco da ragazzi, prendendo tutti i 2 minuti, Android invece era un po 'difficile (forse un paio d'ore, e avevo già installato un JDK).

Got ispirazione per questa risposta dalla lettura this blog

+0

grazie per l'urlo al mio blog. Credo che ci sia un pulsante genimotion che puoi premere per simulare un tremolio del dispositivo. questo dovrebbe richiamare il menu di rabbia mentre viene emulato l'RN-APP –

+0

@ChrisGeirman - grazie per il tuo commento. Qualche idea su quale sia il pulsante genimotion per simulare un tremolio del dispositivo? O quale scorciatoia da tastiera è? (Sto usando un Mac). – arcseldon

+0

Per me short + M scorciatoia funziona. L'unica cosa è che il pulsante menu (visualizzato sulla barra laterale destra destra del simulatore di genomotion) dovrebbe apparire sullo schermo per far funzionare il collegamento. – Yasser

3

Per i dispositivi Android, ho aggiunto uno script che esegue le operazioni seguenti per attivare il menu rabbia.Fondamentalmente preme "MENU", quindi "R", quindi "ENTER" (ulteriori informazioni ADB Shell Input Events)

#!/bin/bash 
adb shell input keyevent 82 46 66 66 

Ecco un link allo script di shell che funziona abbastanza bene per me - https://github.com/r3bl-alliance/react-native-weather/blob/master/android_rage_menu.sh. Io uso Webstorm, quindi l'ho appena aggiunto come "target di esecuzione" che rende così conveniente lavorare con!

enter image description here

+1

Hmm, nel mio caso dovevo eseguire 'adb shell input keyevent 82 46 66 66' Altrimenti non era" facendo clic "sulla voce di menu. Comunque grazie! – BlackTea

+0

@BlackTea - Ho dovuto fare lo stesso. Ho aggiornato la mia risposta per riflettere questo. Ecco un link allo script della shell che ha funzionato bene per me - https://github.com/r3bl-alliance/react-native-weather/blob/master/android_rage_menu.sh –

Problemi correlati