|
@@ -159,7 +159,75 @@ dependencies {
|
159
|
159
|
}
|
160
|
160
|
```
|
161
|
161
|
|
162
|
|
-### 5. Update `MainActivity.java`
|
|
162
|
+### 5 RNN and React Native version
|
|
163
|
+
|
|
164
|
+react-native-navigation supports multiple React Native versions. Target the React Native version required by your project by specifying the RNN build flavor in `android/app/build.gradle`.
|
|
165
|
+
|
|
166
|
+```diff
|
|
167
|
+android {
|
|
168
|
+ ...
|
|
169
|
+ defaultConfig {
|
|
170
|
+ applicationId "com.yourproject"
|
|
171
|
+ minSdkVersion rootProject.ext.minSdkVersion
|
|
172
|
+ targetSdkVersion rootProject.ext.targetSdkVersion
|
|
173
|
++ missingDimensionStrategy "RNN.reactNativeVersion", "reactNative57" // See note below!
|
|
174
|
+ versionCode 1
|
|
175
|
+ versionName "1.0"
|
|
176
|
+ ...
|
|
177
|
+ }
|
|
178
|
+ ...
|
|
179
|
+}
|
|
180
|
+```
|
|
181
|
+
|
|
182
|
+!>Important note about `missingDimensionStrategy`<Br>
|
|
183
|
+>`reactNative51` - RN 0.54.x and below<Br>
|
|
184
|
+>`reactNative55` - RN 0.55.x<Br>
|
|
185
|
+>`reactNative56` - RN 0.56.x<Br>
|
|
186
|
+>`reactNative57` - RN 0.57.0 - 0.57.4<Br>
|
|
187
|
+>`reactNative57_5` - RN 0.57.5 and above<Br>
|
|
188
|
+
|
|
189
|
+Now we need to instruct gradle how to build that flavor. To do so here two solutions:
|
|
190
|
+
|
|
191
|
+#### 5.1 Build app with gradle command
|
|
192
|
+
|
|
193
|
+**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 .
|
|
194
|
+
|
|
195
|
+```
|
|
196
|
+"scripts": {
|
|
197
|
+ ...
|
|
198
|
+ "android": "cd ./android && ./gradlew app:assembleDebug && ./gradlew installDebug"
|
|
199
|
+}
|
|
200
|
+```
|
|
201
|
+
|
|
202
|
+Now run `npm run android` to build your application
|
|
203
|
+
|
|
204
|
+#### 5.2 Ignore other RNN flavors
|
|
205
|
+
|
|
206
|
+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.
|
|
207
|
+
|
|
208
|
+To do so edit `android/build.gradle` and add:
|
|
209
|
+
|
|
210
|
+```diff
|
|
211
|
++subprojects { subproject ->
|
|
212
|
++ afterEvaluate {
|
|
213
|
++ if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
|
|
214
|
++ android {
|
|
215
|
++ variantFilter { variant ->
|
|
216
|
++ def names = variant.flavors*.name
|
|
217
|
++ if (names.contains("reactNative51") || names.contains("reactNative55")) {
|
|
218
|
++ setIgnore(true)
|
|
219
|
++ }
|
|
220
|
++ }
|
|
221
|
++ }
|
|
222
|
++ }
|
|
223
|
++ }
|
|
224
|
++}
|
|
225
|
+```
|
|
226
|
+
|
|
227
|
+**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.
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+### 6. Update `MainActivity.java`
|
163
|
231
|
|
164
|
232
|
`MainActivity.java` should extend `com.reactnativenavigation.NavigationActivity` instead of `ReactActivity`.
|
165
|
233
|
|
|
@@ -180,7 +248,7 @@ This file is located in `android/app/src/main/java/com/<yourproject>/MainActivit
|
180
|
248
|
|
181
|
249
|
If you have any **react-native** related methods, you can safely delete them.
|
182
|
250
|
|
183
|
|
-### 6. Update `MainApplication.java`
|
|
251
|
+### 7. Update `MainApplication.java`
|
184
|
252
|
|
185
|
253
|
This file is located in `android/app/src/main/java/com/<yourproject>/MainApplication.java`.
|
186
|
254
|
|
|
@@ -237,73 +305,6 @@ import java.util.List;
|
237
|
305
|
|
238
|
306
|
```
|
239
|
307
|
|
240
|
|
-### 7 RNN and React Native version
|
241
|
|
-
|
242
|
|
-react-native-navigation supports multiple React Native versions. Target the React Native version required by your project by specifying the RNN build flavor in `android/app/build.gradle`.
|
243
|
|
-
|
244
|
|
-```diff
|
245
|
|
-android {
|
246
|
|
- ...
|
247
|
|
- defaultConfig {
|
248
|
|
- applicationId "com.yourproject"
|
249
|
|
- minSdkVersion rootProject.ext.minSdkVersion
|
250
|
|
- targetSdkVersion rootProject.ext.targetSdkVersion
|
251
|
|
-+ missingDimensionStrategy "RNN.reactNativeVersion", "reactNative57" // See note below!
|
252
|
|
- versionCode 1
|
253
|
|
- versionName "1.0"
|
254
|
|
- ...
|
255
|
|
- }
|
256
|
|
- ...
|
257
|
|
-}
|
258
|
|
-```
|
259
|
|
-
|
260
|
|
-!>Important note about `missingDimensionStrategy`<Br>
|
261
|
|
->`reactNative51` - RN 0.54.x and below<Br>
|
262
|
|
->`reactNative55` - RN 0.55.x<Br>
|
263
|
|
->`reactNative56` - RN 0.56.x<Br>
|
264
|
|
->`reactNative57` - RN 0.57.0 - 0.57.4<Br>
|
265
|
|
->`reactNative57_5` - RN 0.57.5 and above<Br>
|
266
|
|
-
|
267
|
|
-Now we need to instruct gradle how to build that flavor. To do so here two solutions:
|
268
|
|
-
|
269
|
|
-#### 7.1 Build app with gradle command
|
270
|
|
-
|
271
|
|
-**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 .
|
272
|
|
-
|
273
|
|
-```
|
274
|
|
-"scripts": {
|
275
|
|
- ...
|
276
|
|
- "android": "cd ./android && ./gradlew app:assembleDebug && ./gradlew installDebug"
|
277
|
|
-}
|
278
|
|
-```
|
279
|
|
-
|
280
|
|
-Now run `npm run android` to build your application
|
281
|
|
-
|
282
|
|
-#### 7.2 Ignore other RNN flavors
|
283
|
|
-
|
284
|
|
-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.
|
285
|
|
-
|
286
|
|
-To do so edit `android/build.gradle` and add:
|
287
|
|
-
|
288
|
|
-```diff
|
289
|
|
-+subprojects { subproject ->
|
290
|
|
-+ afterEvaluate {
|
291
|
|
-+ if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
|
292
|
|
-+ android {
|
293
|
|
-+ variantFilter { variant ->
|
294
|
|
-+ def names = variant.flavors*.name
|
295
|
|
-+ if (names.contains("reactNative51") || names.contains("reactNative55")) {
|
296
|
|
-+ setIgnore(true)
|
297
|
|
-+ }
|
298
|
|
-+ }
|
299
|
|
-+ }
|
300
|
|
-+ }
|
301
|
|
-+ }
|
302
|
|
-+}
|
303
|
|
-```
|
304
|
|
-
|
305
|
|
-**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.
|
306
|
|
-
|
307
|
308
|
### 8. Force the same support library version across all dependencies (optional)
|
308
|
309
|
|
309
|
310
|
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:
|