| 
				
			 | 
			
			
				@@ -7,11 +7,19 @@ 
			 | 
		
	
		
			
			| 
				7
			 | 
			
				7
			 | 
			
			
				 ## npm 
			 | 
		
	
		
			
			| 
				8
			 | 
			
				8
			 | 
			
			
				 * `npm install --save react-native-navigation` 
			 | 
		
	
		
			
			| 
				9
			 | 
			
				9
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				10
			 | 
			
				
			 | 
			
			
				-## iOS 
			 | 
		
	
		
			
			| 
				
			 | 
			
				10
			 | 
			
			
				+## Installing with react-native link 
			 | 
		
	
		
			
			| 
				
			 | 
			
				11
			 | 
			
			
				+If you're using RN 0.60 or higher, you can link RNN automatically with react-native link. Otherwise, follow the manual installation steps. Unlike most other libraries, react-native-navigation requires you to make a few changes to native files. To make all the necessary changes, run `react-native link react-native-navigation` in your project's root folder. Make sure to commit the changes introduced by the link script. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				12
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				13
			 | 
			
			
				+If the link script completed successfully, you're good to go! If one of the steps failed, you'll need to complete the relevant step in the manual installation steps bellow. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				14
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				15
			 | 
			
			
				+## Manual Installation 
			 | 
		
	
		
			
			| 
				
			 | 
			
				16
			 | 
			
			
				+If installation with react-native link did not work, follow the manual installation steps. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				17
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				18
			 | 
			
			
				+### iOS 
			 | 
		
	
		
			
			| 
				11
			 | 
			
				19
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				12
			 | 
			
				20
			 | 
			
			
				 > Make sure your Xcode is updated. We recommend editing `.h` and `.m` files in Xcode as the IDE will usually point out common errors. 
			 | 
		
	
		
			
			| 
				13
			 | 
			
				21
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				14
			 | 
			
				
			 | 
			
			
				-### Native Installation 
			 | 
		
	
		
			
			| 
				
			 | 
			
				22
			 | 
			
			
				+#### Native Installation 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				23
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				16
			 | 
			
				24
			 | 
			
			
				 1. In Xcode, in Project Navigator (left pane), right-click on the `Libraries` > `Add files to [project name]`. Add `node_modules/react-native-navigation/lib/ios/ReactNativeNavigation.xcodeproj` ([screenshots](https://facebook.github.io/react-native/docs/linking-libraries-ios.html#manual-linking)). 
			 | 
		
	
		
			
			| 
				17
			 | 
			
				25
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -73,12 +81,13 @@ 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				81
			 | 
			
			
				   		... 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				82
			 | 
			
			
				   	``` 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				83
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				76
			 | 
			
				
			 | 
			
			
				-### Installation with CocoaPods 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+#### Installation with CocoaPods 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				85
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				78
			 | 
			
				86
			 | 
			
			
				 Projects generated using newer versions of react-native use CocoaPods by default. In that case it's easier to install react-native-navigation using CocoaPods. 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				87
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				80
			 | 
			
				88
			 | 
			
			
				 1. Update your `Podfile`: 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				
			 | 
			
			
				-If you're upgrading to v5 from a previous RNN version, make sure to remove manual linking of RNN 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+**If you're upgrading to v5 from a previous RNN version**, make sure to remove manual linking of RNN 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				91
			 | 
			
			
				 ```diff 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				92
			 | 
			
			
				 platform :ios, '9.0' 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				93
			 | 
			
			
				 require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -118,46 +127,31 @@ end 
			 | 
		
	
		
			
			| 
				118
			 | 
			
				127
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				119
			 | 
			
				128
			 | 
			
			
				 2. `cd ios && pod install` 
			 | 
		
	
		
			
			| 
				120
			 | 
			
				129
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				121
			 | 
			
				
			 | 
			
			
				-3. Follow 3 and 3b in the Native Installation section. 
			 | 
		
	
		
			
			| 
				122
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				123
			 | 
			
				
			 | 
			
			
				-## Android 
			 | 
		
	
		
			
			| 
				
			 | 
			
				130
			 | 
			
			
				+### Android 
			 | 
		
	
		
			
			| 
				124
			 | 
			
				131
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				125
			 | 
			
				132
			 | 
			
			
				 > Make sure your Android Studio installation is updated. We recommend editing `gradle` and `java` files in Android Studio as the IDE will suggest fixes and point out errors, this way you avoid most common pitfalls. 
			 | 
		
	
		
			
			| 
				126
			 | 
			
				133
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				127
			 | 
			
				
			 | 
			
			
				-### 1. Add the following in `android/settings.gradle`: 
			 | 
		
	
		
			
			| 
				128
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				129
			 | 
			
				
			 | 
			
			
				-```groovy 
			 | 
		
	
		
			
			| 
				130
			 | 
			
				
			 | 
			
			
				-include ':react-native-navigation' 
			 | 
		
	
		
			
			| 
				131
			 | 
			
				
			 | 
			
			
				-project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/') 
			 | 
		
	
		
			
			| 
				132
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				133
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				134
			 | 
			
				
			 | 
			
			
				-### 2. Make sure you're using the new gradle plugin, edit `android/gradle/wrapper/gradle-wrapper.properties` 
			 | 
		
	
		
			
			| 
				135
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				136
			 | 
			
				
			 | 
			
			
				-```diff 
			 | 
		
	
		
			
			| 
				137
			 | 
			
				
			 | 
			
			
				-distributionBase=GRADLE_USER_HOME 
			 | 
		
	
		
			
			| 
				138
			 | 
			
				
			 | 
			
			
				-distributionPath=wrapper/dists 
			 | 
		
	
		
			
			| 
				139
			 | 
			
				
			 | 
			
			
				-zipStoreBase=GRADLE_USER_HOME 
			 | 
		
	
		
			
			| 
				140
			 | 
			
				
			 | 
			
			
				-zipStorePath=wrapper/dists 
			 | 
		
	
		
			
			| 
				141
			 | 
			
				
			 | 
			
			
				-+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 
			 | 
		
	
		
			
			| 
				142
			 | 
			
				
			 | 
			
			
				--distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 
			 | 
		
	
		
			
			| 
				143
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				144
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				145
			 | 
			
				
			 | 
			
			
				-### 3 Update `android/build.gradle`: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				134
			 | 
			
			
				+#### 1 Update `android/build.gradle`: 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				135
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				147
			 | 
			
				136
			 | 
			
			
				 ```diff 
			 | 
		
	
		
			
			| 
				148
			 | 
			
				137
			 | 
			
			
				 buildscript { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				138
			 | 
			
			
				+  ext { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				139
			 | 
			
			
				+-   minSdkVersion = 16 
			 | 
		
	
		
			
			| 
				
			 | 
			
				140
			 | 
			
			
				++   minSdkVersion = 19 // Or higher 
			 | 
		
	
		
			
			| 
				
			 | 
			
				141
			 | 
			
			
				+    compileSdkVersion = 26 
			 | 
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				+    targetSdkVersion = 26 
			 | 
		
	
		
			
			| 
				
			 | 
			
				143
			 | 
			
			
				+    supportLibVersion = "26.1.0" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				144
			 | 
			
			
				++   RNNKotlinVersion = "1.3.61" // Or any version above 1.3.x 
			 | 
		
	
		
			
			| 
				
			 | 
			
				145
			 | 
			
			
				++   RNNKotlinStdlib = "kotlin-stdlib-jdk8" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				146
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				147
			 | 
			
			
				 	repositories { 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				
			 | 
			
			
				-+        google() 
			 | 
		
	
		
			
			| 
				
			 | 
			
				148
			 | 
			
			
				+        google() 
			 | 
		
	
		
			
			| 
				
			 | 
			
				149
			 | 
			
			
				+        jcenter() 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				150
			 | 
			
			
				 +        mavenLocal() 
			 | 
		
	
		
			
			| 
				152
			 | 
			
				151
			 | 
			
			
				 +        mavenCentral() 
			 | 
		
	
		
			
			| 
				153
			 | 
			
				
			 | 
			
			
				-+        jcenter() 
			 | 
		
	
		
			
			| 
				154
			 | 
			
				
			 | 
			
			
				--        maven { 
			 | 
		
	
		
			
			| 
				155
			 | 
			
				
			 | 
			
			
				--            url 'https://maven.google.com/' 
			 | 
		
	
		
			
			| 
				156
			 | 
			
				
			 | 
			
			
				--            name 'Google' 
			 | 
		
	
		
			
			| 
				157
			 | 
			
				
			 | 
			
			
				--        } 
			 | 
		
	
		
			
			| 
				158
			 | 
			
				152
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				159
			 | 
			
				153
			 | 
			
			
				 	dependencies { 
			 | 
		
	
		
			
			| 
				160
			 | 
			
				
			 | 
			
			
				-+        classpath 'com.android.tools.build:gradle:3.0.1' 
			 | 
		
	
		
			
			| 
				
			 | 
			
				154
			 | 
			
			
				++        classpath 'com.android.tools.build:gradle:3.5.3' // Or higher 
			 | 
		
	
		
			
			| 
				161
			 | 
			
				155
			 | 
			
			
				 -        classpath 'com.android.tools.build:gradle:2.2.3' 
			 | 
		
	
		
			
			| 
				162
			 | 
			
				156
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				163
			 | 
			
				157
			 | 
			
			
				 } 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -178,91 +172,8 @@ allprojects { 
			 | 
		
	
		
			
			| 
				178
			 | 
			
				172
			 | 
			
			
				 +		maven { url 'https://jitpack.io' } 
			 | 
		
	
		
			
			| 
				179
			 | 
			
				173
			 | 
			
			
				 	} 
			 | 
		
	
		
			
			| 
				180
			 | 
			
				174
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				181
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				182
			 | 
			
				
			 | 
			
			
				-ext { 
			 | 
		
	
		
			
			| 
				183
			 | 
			
				
			 | 
			
			
				--    minSdkVersion = 16 
			 | 
		
	
		
			
			| 
				184
			 | 
			
				
			 | 
			
			
				-+    minSdkVersion = 19 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				
			 | 
			
			
				-    compileSdkVersion = 26 
			 | 
		
	
		
			
			| 
				186
			 | 
			
				
			 | 
			
			
				-    targetSdkVersion = 26 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				
			 | 
			
			
				-    supportLibVersion = "26.1.0" 
			 | 
		
	
		
			
			| 
				188
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				189
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				190
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				191
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				192
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				193
			 | 
			
				
			 | 
			
			
				-### 4 Update project dependencies in `android/app/build.gradle`. 
			 | 
		
	
		
			
			| 
				194
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				195
			 | 
			
				
			 | 
			
			
				-```diff 
			 | 
		
	
		
			
			| 
				196
			 | 
			
				
			 | 
			
			
				-android { 
			 | 
		
	
		
			
			| 
				197
			 | 
			
				
			 | 
			
			
				-    compileSdkVersion rootProject.ext.compileSdkVersion 
			 | 
		
	
		
			
			| 
				198
			 | 
			
				
			 | 
			
			
				-    buildToolsVersion rootProject.ext.buildToolsVersion 
			 | 
		
	
		
			
			| 
				199
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				200
			 | 
			
				
			 | 
			
			
				-    defaultConfig { 
			 | 
		
	
		
			
			| 
				201
			 | 
			
				
			 | 
			
			
				-        applicationId "com.yourproject" 
			 | 
		
	
		
			
			| 
				202
			 | 
			
				
			 | 
			
			
				-        minSdkVersion rootProject.ext.minSdkVersion 
			 | 
		
	
		
			
			| 
				203
			 | 
			
				
			 | 
			
			
				-        targetSdkVersion rootProject.ext.targetSdkVersion 
			 | 
		
	
		
			
			| 
				204
			 | 
			
				
			 | 
			
			
				-        versionCode 1 
			 | 
		
	
		
			
			| 
				205
			 | 
			
				
			 | 
			
			
				-        versionName "1.0" 
			 | 
		
	
		
			
			| 
				206
			 | 
			
				
			 | 
			
			
				-        ndk { 
			 | 
		
	
		
			
			| 
				207
			 | 
			
				
			 | 
			
			
				-            abiFilters "armeabi-v7a", "x86" 
			 | 
		
	
		
			
			| 
				208
			 | 
			
				
			 | 
			
			
				-        } 
			 | 
		
	
		
			
			| 
				209
			 | 
			
				
			 | 
			
			
				-    } 
			 | 
		
	
		
			
			| 
				210
			 | 
			
				
			 | 
			
			
				-+	compileOptions { 
			 | 
		
	
		
			
			| 
				211
			 | 
			
				
			 | 
			
			
				-+		sourceCompatibility JavaVersion.VERSION_1_8 
			 | 
		
	
		
			
			| 
				212
			 | 
			
				
			 | 
			
			
				-+		targetCompatibility JavaVersion.VERSION_1_8 
			 | 
		
	
		
			
			| 
				213
			 | 
			
				
			 | 
			
			
				-+	} 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				
			 | 
			
			
				-	... 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				
			 | 
			
			
				-dependencies { 
			 | 
		
	
		
			
			| 
				218
			 | 
			
				
			 | 
			
			
				--    compile fileTree(dir: "libs", include: ["*.jar"]) 
			 | 
		
	
		
			
			| 
				219
			 | 
			
				
			 | 
			
			
				--    compile "com.facebook.react:react-native:+"  // From node_modules 
			 | 
		
	
		
			
			| 
				220
			 | 
			
				
			 | 
			
			
				-+    implementation fileTree(dir: "libs", include: ["*.jar"]) 
			 | 
		
	
		
			
			| 
				221
			 | 
			
				
			 | 
			
			
				-+    implementation "com.facebook.react:react-native:+"  // From node_modules 
			 | 
		
	
		
			
			| 
				222
			 | 
			
				
			 | 
			
			
				-+    implementation project(':react-native-navigation') 
			 | 
		
	
		
			
			| 
				223
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				224
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				225
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				226
			 | 
			
				
			 | 
			
			
				-#### 5.0 Build app with gradle command 
			 | 
		
	
		
			
			| 
				227
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				228
			 | 
			
				
			 | 
			
			
				-**prefered solution** The RNN flavor you would like to build is specified in `app/build.gradle`. Therefore in order to compile only that flavor, instead of building your entire project using `./gradlew assembleDebug`, you should instruct gradle to build the app module: `./gradlew app:assembleDebug`. The easiest way is to add a package.json command to build and install your debug Android APK . 
			 | 
		
	
		
			
			| 
				229
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				230
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				231
			 | 
			
				
			 | 
			
			
				-"scripts": { 
			 | 
		
	
		
			
			| 
				232
			 | 
			
				
			 | 
			
			
				-  ... 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				
			 | 
			
			
				-  "android": "cd ./android && ./gradlew app:assembleDebug && ./gradlew installDebug" 
			 | 
		
	
		
			
			| 
				234
			 | 
			
				
			 | 
			
			
				-} 
			 | 
		
	
		
			
			| 
				235
			 | 
			
				175
			 | 
			
			
				 ``` 
			 | 
		
	
		
			
			| 
				236
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				237
			 | 
			
				
			 | 
			
			
				-Now run `npm run android` to build your application 
			 | 
		
	
		
			
			| 
				238
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				239
			 | 
			
				
			 | 
			
			
				-#### 5.1 Ignore other RNN flavors 
			 | 
		
	
		
			
			| 
				240
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				241
			 | 
			
				
			 | 
			
			
				-If you don't want to run `npm run android` and want to keep the default `react-native run-android` command, you need to specify to graddle to ignore the other flavors RNN provides. 
			 | 
		
	
		
			
			| 
				242
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				243
			 | 
			
				
			 | 
			
			
				-To do so edit `android/build.gradle` and add: 
			 | 
		
	
		
			
			| 
				244
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				245
			 | 
			
				
			 | 
			
			
				-```diff 
			 | 
		
	
		
			
			| 
				246
			 | 
			
				
			 | 
			
			
				-+subprojects { subproject -> 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				
			 | 
			
			
				-+    afterEvaluate { 
			 | 
		
	
		
			
			| 
				248
			 | 
			
				
			 | 
			
			
				-+        if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { 
			 | 
		
	
		
			
			| 
				249
			 | 
			
				
			 | 
			
			
				-+            android { 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				
			 | 
			
			
				-+                variantFilter { variant -> 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				
			 | 
			
			
				-+                    def names = variant.flavors*.name 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				
			 | 
			
			
				-+                    if (names.contains("reactNative51") || names.contains("reactNative55")) { 
			 | 
		
	
		
			
			| 
				253
			 | 
			
				
			 | 
			
			
				-+                        setIgnore(true) 
			 | 
		
	
		
			
			| 
				254
			 | 
			
				
			 | 
			
			
				-+                    } 
			 | 
		
	
		
			
			| 
				255
			 | 
			
				
			 | 
			
			
				-+                } 
			 | 
		
	
		
			
			| 
				256
			 | 
			
				
			 | 
			
			
				-+            } 
			 | 
		
	
		
			
			| 
				257
			 | 
			
				
			 | 
			
			
				-+        } 
			 | 
		
	
		
			
			| 
				258
			 | 
			
				
			 | 
			
			
				-+    } 
			 | 
		
	
		
			
			| 
				259
			 | 
			
				
			 | 
			
			
				-+} 
			 | 
		
	
		
			
			| 
				260
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				261
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				262
			 | 
			
				
			 | 
			
			
				-**Note**: As more build variants come available in the future, you will need to adjust the list (`names.contains("reactNative51") || names.contains("reactNative55")`). This is why we recommend the first solution. 
			 | 
		
	
		
			
			| 
				263
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				264
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				265
			 | 
			
				
			 | 
			
			
				-### 6. Update `MainActivity.java` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				176
			 | 
			
			
				+#### 2 Update `MainActivity.java` 
			 | 
		
	
		
			
			| 
				266
			 | 
			
				177
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				267
			 | 
			
				178
			 | 
			
			
				 `MainActivity.java` should extend `com.reactnativenavigation.NavigationActivity` instead of `ReactActivity`. 
			 | 
		
	
		
			
			| 
				268
			 | 
			
				179
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -283,7 +194,7 @@ This file is located in `android/app/src/main/java/com/<yourproject>/MainActivit 
			 | 
		
	
		
			
			| 
				283
			 | 
			
				194
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				284
			 | 
			
				195
			 | 
			
			
				 If you have any **react-native** related methods, you can safely delete them. 
			 | 
		
	
		
			
			| 
				285
			 | 
			
				196
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				286
			 | 
			
				
			 | 
			
			
				-### 7. Update `MainApplication.java` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				197
			 | 
			
			
				+#### 3 Update `MainApplication.java` 
			 | 
		
	
		
			
			| 
				287
			 | 
			
				198
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				288
			 | 
			
				199
			 | 
			
			
				 This file is located in `android/app/src/main/java/com/<yourproject>/MainApplication.java`. 
			 | 
		
	
		
			
			| 
				289
			 | 
			
				200
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -299,49 +210,110 @@ import com.facebook.soloader.SoLoader; 
			 | 
		
	
		
			
			| 
				299
			 | 
			
				210
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				300
			 | 
			
				211
			 | 
			
			
				 +import com.reactnativenavigation.NavigationApplication; 
			 | 
		
	
		
			
			| 
				301
			 | 
			
				212
			 | 
			
			
				 +import com.reactnativenavigation.react.NavigationReactNativeHost; 
			 | 
		
	
		
			
			| 
				302
			 | 
			
				
			 | 
			
			
				-+import com.reactnativenavigation.react.ReactGateway; 
			 | 
		
	
		
			
			| 
				303
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				304
			 | 
			
				
			 | 
			
			
				-import java.util.Arrays; 
			 | 
		
	
		
			
			| 
				305
			 | 
			
				
			 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
			| 
				306
			 | 
			
				213
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				307
			 | 
			
				214
			 | 
			
			
				 -public class MainApplication extends Application implements ReactApplication { 
			 | 
		
	
		
			
			| 
				308
			 | 
			
				215
			 | 
			
			
				 +public class MainApplication extends NavigationApplication { 
			 | 
		
	
		
			
			| 
				309
			 | 
			
				
			 | 
			
			
				-+ 
			 | 
		
	
		
			
			| 
				310
			 | 
			
				
			 | 
			
			
				-+    @Override 
			 | 
		
	
		
			
			| 
				311
			 | 
			
				
			 | 
			
			
				-+    protected ReactGateway createReactGateway() { 
			 | 
		
	
		
			
			| 
				312
			 | 
			
				
			 | 
			
			
				-+        ReactNativeHost host = new NavigationReactNativeHost(this, isDebug(), createAdditionalReactPackages()) { 
			 | 
		
	
		
			
			| 
				313
			 | 
			
				
			 | 
			
			
				-+            @Override 
			 | 
		
	
		
			
			| 
				314
			 | 
			
				
			 | 
			
			
				-+            protected String getJSMainModuleName() { 
			 | 
		
	
		
			
			| 
				315
			 | 
			
				
			 | 
			
			
				-+                return "index"; 
			 | 
		
	
		
			
			| 
				316
			 | 
			
				
			 | 
			
			
				-+            } 
			 | 
		
	
		
			
			| 
				317
			 | 
			
				
			 | 
			
			
				-+        }; 
			 | 
		
	
		
			
			| 
				318
			 | 
			
				
			 | 
			
			
				-+        return new ReactGateway(this, isDebug(), host); 
			 | 
		
	
		
			
			| 
				319
			 | 
			
				
			 | 
			
			
				-+    } 
			 | 
		
	
		
			
			| 
				320
			 | 
			
				
			 | 
			
			
				-+ 
			 | 
		
	
		
			
			| 
				321
			 | 
			
				
			 | 
			
			
				-+    @Override 
			 | 
		
	
		
			
			| 
				322
			 | 
			
				
			 | 
			
			
				-+    public boolean isDebug() { 
			 | 
		
	
		
			
			| 
				323
			 | 
			
				
			 | 
			
			
				-+        return BuildConfig.DEBUG; 
			 | 
		
	
		
			
			| 
				324
			 | 
			
				
			 | 
			
			
				-+    } 
			 | 
		
	
		
			
			| 
				325
			 | 
			
				
			 | 
			
			
				-+ 
			 | 
		
	
		
			
			| 
				326
			 | 
			
				
			 | 
			
			
				-+    protected List<ReactPackage> getPackages() { 
			 | 
		
	
		
			
			| 
				327
			 | 
			
				
			 | 
			
			
				-+        // Add additional packages you require here 
			 | 
		
	
		
			
			| 
				328
			 | 
			
				
			 | 
			
			
				-+        // No need to add RnnPackage and MainReactPackage 
			 | 
		
	
		
			
			| 
				329
			 | 
			
				
			 | 
			
			
				-+        return Arrays.<ReactPackage>asList( 
			 | 
		
	
		
			
			| 
				330
			 | 
			
				
			 | 
			
			
				-+            // eg. new VectorIconsPackage() 
			 | 
		
	
		
			
			| 
				331
			 | 
			
				
			 | 
			
			
				-+        ); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				216
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				217
			 | 
			
			
				+private final ReactNativeHost mReactNativeHost = 
			 | 
		
	
		
			
			| 
				
			 | 
			
				218
			 | 
			
			
				+-      new ReactNativeHost(this) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				219
			 | 
			
			
				++      new NavigationReactNativeHost(this) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				220
			 | 
			
			
				+        @Override 
			 | 
		
	
		
			
			| 
				
			 | 
			
				221
			 | 
			
			
				+        public boolean getUseDeveloperSupport() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				222
			 | 
			
			
				+          return BuildConfig.DEBUG; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				223
			 | 
			
			
				+        } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				224
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				225
			 | 
			
			
				+        @Override 
			 | 
		
	
		
			
			| 
				
			 | 
			
				226
			 | 
			
			
				+        protected List<ReactPackage> getPackages() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				227
			 | 
			
			
				+          @SuppressWarnings("UnnecessaryLocalVariable") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				228
			 | 
			
			
				+          List<ReactPackage> packages = new PackageList(this).getPackages(); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				229
			 | 
			
			
				+          // Packages that cannot be autolinked yet can be added manually here, for example: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				230
			 | 
			
			
				+          // packages.add(new MyReactNativePackage()); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				231
			 | 
			
			
				+          return packages; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				232
			 | 
			
			
				+        } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				233
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				234
			 | 
			
			
				+        @Override 
			 | 
		
	
		
			
			| 
				
			 | 
			
				235
			 | 
			
			
				+        protected String getJSMainModuleName() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				236
			 | 
			
			
				+          return "index"; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				237
			 | 
			
			
				+        } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				238
			 | 
			
			
				+      }; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				239
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				240
			 | 
			
			
				+  @Override 
			 | 
		
	
		
			
			| 
				
			 | 
			
				241
			 | 
			
			
				+  public ReactNativeHost getReactNativeHost() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				242
			 | 
			
			
				+    return mReactNativeHost; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				243
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				244
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				245
			 | 
			
			
				+  @Override 
			 | 
		
	
		
			
			| 
				
			 | 
			
				246
			 | 
			
			
				+  public void onCreate() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				247
			 | 
			
			
				+    super.onCreate(); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				248
			 | 
			
			
				+-    SoLoader.init(this, /* native exopackage */ false); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				249
			 | 
			
			
				+    initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				250
			 | 
			
			
				+  } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				251
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				252
			 | 
			
			
				+``` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				253
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				254
			 | 
			
			
				+## You can use react-native-navigation \o/ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				255
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				256
			 | 
			
			
				+Update `index.js` file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				257
			 | 
			
			
				+```diff 
			 | 
		
	
		
			
			| 
				
			 | 
			
				258
			 | 
			
			
				++import { Navigation } from "react-native-navigation"; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				259
			 | 
			
			
				+-import {AppRegistry} from 'react-native'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				260
			 | 
			
			
				+import App from "./App"; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				261
			 | 
			
			
				+-import {name as appName} from './app.json'; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				262
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				263
			 | 
			
			
				+-AppRegistry.registerComponent(appName, () => App); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				264
			 | 
			
			
				++Navigation.registerComponent(`navigation.playground.WelcomeScreen`, () => App); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				265
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				266
			 | 
			
			
				++Navigation.events().registerAppLaunchedListener(() => { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				267
			 | 
			
			
				++  Navigation.setRoot({ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				268
			 | 
			
			
				++    root: { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				269
			 | 
			
			
				++      component: { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				270
			 | 
			
			
				++        name: "navigation.playground.WelcomeScreen" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				271
			 | 
			
			
				++      } 
			 | 
		
	
		
			
			| 
				332
			 | 
			
				272
			 | 
			
			
				 +    } 
			 | 
		
	
		
			
			| 
				333
			 | 
			
				
			 | 
			
			
				-+ 
			 | 
		
	
		
			
			| 
				334
			 | 
			
				
			 | 
			
			
				-+    @Override 
			 | 
		
	
		
			
			| 
				335
			 | 
			
				
			 | 
			
			
				-+    public List<ReactPackage> createAdditionalReactPackages() { 
			 | 
		
	
		
			
			| 
				336
			 | 
			
				
			 | 
			
			
				-+        return getPackages(); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				273
			 | 
			
			
				++  }); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				274
			 | 
			
			
				++}); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				275
			 | 
			
			
				+``` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				276
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				277
			 | 
			
			
				+⚠️ we use the layout type `component` here, which renders a React component but does not allow you to navigate to others. See [Usage](docs/Usage.md) and [LayoutTypes](docs/layout-types.md) for more options. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				278
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				279
			 | 
			
			
				+## Troubleshooting 
			 | 
		
	
		
			
			| 
				
			 | 
			
				280
			 | 
			
			
				+### Build app with gradle command 
			 | 
		
	
		
			
			| 
				
			 | 
			
				281
			 | 
			
			
				+**prefered solution** - The RNN flavor you would like to build is specified in `app/build.gradle`. Therefore in order to compile only that flavor, instead of building your entire project using `./gradlew assembleDebug`, you should instruct gradle to build the app module: `./gradlew app:assembleDebug`. The easiest way is to add a package.json command to build and install your debug Android APK . 
			 | 
		
	
		
			
			| 
				
			 | 
			
				282
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				283
			 | 
			
			
				+``` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				284
			 | 
			
			
				+"scripts": { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				285
			 | 
			
			
				+  ... 
			 | 
		
	
		
			
			| 
				
			 | 
			
				286
			 | 
			
			
				+  "android": "cd ./android && ./gradlew app:assembleDebug && ./gradlew installDebug" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				287
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				288
			 | 
			
			
				+``` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				289
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				290
			 | 
			
			
				+Now run `npm run android` to build your application 
			 | 
		
	
		
			
			| 
				
			 | 
			
				291
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				292
			 | 
			
			
				+### Ignore other RNN flavors 
			 | 
		
	
		
			
			| 
				
			 | 
			
				293
			 | 
			
			
				+If you don't want to run `npm run android` and want to keep the default `react-native run-android` command, you need to instruct gradle to ignore the other flavors RNN provides. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				294
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				295
			 | 
			
			
				+To do so edit `android/build.gradle` and add: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				296
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				297
			 | 
			
			
				+```diff 
			 | 
		
	
		
			
			| 
				
			 | 
			
				298
			 | 
			
			
				++subprojects { subproject -> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				299
			 | 
			
			
				++    afterEvaluate { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				300
			 | 
			
			
				++        if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				301
			 | 
			
			
				++            android { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				302
			 | 
			
			
				++                variantFilter { variant -> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				303
			 | 
			
			
				++                    def names = variant.flavors*.name 
			 | 
		
	
		
			
			| 
				
			 | 
			
				304
			 | 
			
			
				++                    if (names.contains("reactNative51") || names.contains("reactNative55")) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				305
			 | 
			
			
				++                        setIgnore(true) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				306
			 | 
			
			
				++                    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				307
			 | 
			
			
				++                } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				308
			 | 
			
			
				++            } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				309
			 | 
			
			
				++        } 
			 | 
		
	
		
			
			| 
				337
			 | 
			
				310
			 | 
			
			
				 +    } 
			 | 
		
	
		
			
			| 
				338
			 | 
			
				
			 | 
			
			
				-- ... 
			 | 
		
	
		
			
			| 
				339
			 | 
			
				311
			 | 
			
			
				 +} 
			 | 
		
	
		
			
			| 
				340
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				341
			 | 
			
				312
			 | 
			
			
				 ``` 
			 | 
		
	
		
			
			| 
				342
			 | 
			
				313
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				343
			 | 
			
				
			 | 
			
			
				-### 8. Force the same support library version across all dependencies (optional) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				314
			 | 
			
			
				+**Note**: As more build variants come available in the future, you will need to adjust the list (`names.contains("reactNative51") || names.contains("reactNative55")`). This is why we recommend the first solution. 
			 | 
		
	
		
			
			| 
				344
			 | 
			
				315
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				316
			 | 
			
			
				+### Force the same support library version across all dependencies 
			 | 
		
	
		
			
			| 
				345
			 | 
			
				317
			 | 
			
			
				 Some of your dependencies might require a different version of one of Google's support library packages. This results in compilation errors similar to this: 
			 | 
		
	
		
			
			| 
				346
			 | 
			
				318
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				347
			 | 
			
				319
			 | 
			
			
				 ``` 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -375,28 +347,3 @@ dependencies { 
			 | 
		
	
		
			
			| 
				375
			 | 
			
				347
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				376
			 | 
			
				348
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				377
			 | 
			
				349
			 | 
			
			
				 ``` 
			 | 
		
	
		
			
			| 
				378
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				379
			 | 
			
				
			 | 
			
			
				-## You can use react-native-navigation \o/ 
			 | 
		
	
		
			
			| 
				380
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				381
			 | 
			
				
			 | 
			
			
				-Update `index.js` file 
			 | 
		
	
		
			
			| 
				382
			 | 
			
				
			 | 
			
			
				-```diff 
			 | 
		
	
		
			
			| 
				383
			 | 
			
				
			 | 
			
			
				-+import { Navigation } from "react-native-navigation"; 
			 | 
		
	
		
			
			| 
				384
			 | 
			
				
			 | 
			
			
				--import {AppRegistry} from 'react-native'; 
			 | 
		
	
		
			
			| 
				385
			 | 
			
				
			 | 
			
			
				-import App from "./App"; 
			 | 
		
	
		
			
			| 
				386
			 | 
			
				
			 | 
			
			
				--import {name as appName} from './app.json'; 
			 | 
		
	
		
			
			| 
				387
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				388
			 | 
			
				
			 | 
			
			
				--AppRegistry.registerComponent(appName, () => App); 
			 | 
		
	
		
			
			| 
				389
			 | 
			
				
			 | 
			
			
				-+Navigation.registerComponent(`navigation.playground.WelcomeScreen`, () => App); 
			 | 
		
	
		
			
			| 
				390
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				391
			 | 
			
				
			 | 
			
			
				-+Navigation.events().registerAppLaunchedListener(() => { 
			 | 
		
	
		
			
			| 
				392
			 | 
			
				
			 | 
			
			
				-+  Navigation.setRoot({ 
			 | 
		
	
		
			
			| 
				393
			 | 
			
				
			 | 
			
			
				-+    root: { 
			 | 
		
	
		
			
			| 
				394
			 | 
			
				
			 | 
			
			
				-+      component: { 
			 | 
		
	
		
			
			| 
				395
			 | 
			
				
			 | 
			
			
				-+        name: "navigation.playground.WelcomeScreen" 
			 | 
		
	
		
			
			| 
				396
			 | 
			
				
			 | 
			
			
				-+      } 
			 | 
		
	
		
			
			| 
				397
			 | 
			
				
			 | 
			
			
				-+    } 
			 | 
		
	
		
			
			| 
				398
			 | 
			
				
			 | 
			
			
				-+  }); 
			 | 
		
	
		
			
			| 
				399
			 | 
			
				
			 | 
			
			
				-+}); 
			 | 
		
	
		
			
			| 
				400
			 | 
			
				
			 | 
			
			
				-``` 
			 | 
		
	
		
			
			| 
				401
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				402
			 | 
			
				
			 | 
			
			
				-⚠️ we use the layout type `component` here, which renders a React component but does not allow you to navigate to others. See [Usage](docs/Usage.md) and [LayoutTypes](docs/layout-types.md) for more options. 
			 |