2015-11-12 2 views
10

Ich habe gelesen, dass die Deaktivierung des Dev-Modus in Android kann helfen, einige der Probleme mit dem Android-Emulator zu beschleunigen, da es im Moment nicht reagiert. Wie deaktiviere ich den Entwicklermodus? Ich kann keinen Bool-Wert oder irgendetwas in den reaktiven nativen Dateien finden.reagieren native, wie Android-Dev-Modus zu deaktivieren

Antwort

18

Wenn Sie das Menü in reagieren-native Anwendungen (F2 oder Wut schütteln) und wählt dev Optionen zu öffnen, gibt es Option dev Modus auszuschalten zusammen mit anderen Optionen wie Live-reload

+0

Wenn ich F2 drücke und dann bis zu Dev Einstellungen, bekomme ich nur die folgenden Optionen: FPS-Debugging, Animationen FPS-Zusammenfassungen, automatisches Neuladen auf JS ändern und debuggen Server-Host für das Gerät. Keines davon scheint mit dem Dev-Modus zu tun zu haben. –

+0

Darf ich fragen, welche Version von react-native und Android Sie verwenden? Ich benutze 0.14.2 und 5.0.1 respektive –

+0

Ich scheint, als ob ich Version 0.12.0 von reactive-native aus meiner package.son Datei verwende, ich dachte, ich wäre auf 0.14. Ich kann nicht sehen, wo die Version für mein Android erwähnt wird. Weißt du, wie ich meine Version von reactive-native am besten aufrüste? –

0

ich nicht versucht habe, aber ich bin mir ziemlich sicher, wenn Sie die folgende Datei öffnen ...

/node_modules/reagieren-native/ReactAndroid/src/main/java/com/facebook/reagieren /devsupport/DevServerHelper.java

Und Sie dies ändern ...

private static final String BUNDLE_URL_FORMAT = 
    "http://%s/%s.bundle?platform=android&dev=%s"; 

dazu ...

private static final String BUNDLE_URL_FORMAT = 
    "http://%s/%s.bundle?platform=android"; 

Das sollte den Trick

4

Ich bevorzuge den Weg, um apk mit einer einfachen grodle Befehlszeile zu bauen. Ich muss eine App-preprod.apk mit Bundle reaktivieren native JS und deaktivieren Sie den Entwickler-Modus, um einige verschiedene API-Host-Einstellungen von Release-Build.

Nach sieht über Google und stackoverflow, endete ich bis PROJECT_PATH\node_modules\react-native\react.gradle zu finden, und es stellt sich heraus, reagiert nur den Dev-Modus ausschalten, wenn Android Build Varianten Name enthält "Release".

// Set up dev mode 
def devEnabled = !targetName.toLowerCase().contains("release") 
if (Os.isFamily(Os.FAMILY_WINDOWS)) { 
    commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", 
      "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir 
} else { 
    commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", 
      "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir 
} 

So Refactoring ich nur die devEnabled meine Gewohnheit folgen devInXxx Einstellung

def devEnabled = config."devIn${targetName}" == false ? false : !targetName.toLowerCase().contains("release") 

Und gesetzt Buildtyp-Varianten dev Modus auf false in PROJECT_PATH/android/build.gradle

project.ext.react = [ 
bundleInPreprod: true, 
devInPreprod: false] 

den Build zu reinigen, entfernen Sie alle Dateien unter "PROJECT_PATH/android/app/build" und führen Sie Graple Assembly die Build-Variante nur durch

PROJECT_PATH/android$ ./gradlew assemblePreprod 

, die die app-preprod.apk, die js gebündelt und deaktivieren dev-modus. Normalerweise unter dem Ordner PROJECT_PATH/android/app/build/output/apk/

0

Sie auch versuchen, npm start laufen kann, dann d drücken den aktuellen Modus zu wechseln, dann npm von ctr+c stoppen und dann wieder laufen exp start Sie die Erweiterung Feature finden sich auf und der Modus wurde die Produktion.