|
@@ -1,5 +1,8 @@
|
1
|
1
|
# Android Installation
|
2
|
2
|
|
|
3
|
+!> Make sure your Android Studio installation is updated. We recommend editing `gralde` and `java` files in Android Studio as the ide will suggest fixes and point out errors, this way you avoid most common pitfalls.
|
|
4
|
+
|
|
5
|
+
|
3
|
6
|
1. Install `react-native-navigation` latest stable version.
|
4
|
7
|
|
5
|
8
|
```sh
|
|
@@ -12,24 +15,75 @@
|
12
|
15
|
include ':react-native-navigation'
|
13
|
16
|
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/lib/android/app/')
|
14
|
17
|
```
|
15
|
|
-
|
16
|
|
-3. Update project dependencies in `android/app/build.gradle`.
|
17
|
|
- ```groovy
|
18
|
|
- android {
|
19
|
|
- compileSdkVersion 25
|
20
|
|
- buildToolsVersion "25.0.1"
|
21
|
|
- ...
|
22
|
|
- }
|
23
|
|
-
|
24
|
|
- dependencies {
|
25
|
|
- compile fileTree(dir: "libs", include: ["*.jar"])
|
26
|
|
- compile "com.android.support:appcompat-v7:23.0.1"
|
27
|
|
- compile "com.facebook.react:react-native:+"
|
28
|
|
- compile project(':react-native-navigation')
|
29
|
|
- }
|
30
|
|
- ```
|
31
|
|
-
|
32
|
|
-4. In `MainActivity.java` it should extend `com.reactnativenavigation.NavigationActivity` instead of `ReactActivity`.
|
|
18
|
+
|
|
19
|
+3. Update `android/build.gradle`
|
|
20
|
+
|
|
21
|
+```diff
|
|
22
|
+buildscript {
|
|
23
|
+ repositories {
|
|
24
|
++ mavenLocal()
|
|
25
|
++ mavenCentral()
|
|
26
|
++ google()
|
|
27
|
++ jcenter()
|
|
28
|
+ }
|
|
29
|
+ dependencies {
|
|
30
|
++ classpath 'com.android.tools.build:gradle:3.0.1'
|
|
31
|
+- classpath 'com.android.tools.build:gradle:2.2.3'
|
|
32
|
+ }
|
|
33
|
+}
|
|
34
|
+
|
|
35
|
+allprojects {
|
|
36
|
+ repositories {
|
|
37
|
+ mavenLocal()
|
|
38
|
++ mavenCentral()
|
|
39
|
++ google()
|
|
40
|
+ jcenter()
|
|
41
|
+ maven {
|
|
42
|
+ // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
43
|
+ url "$rootDir/../../node_modules/react-native/android"
|
|
44
|
+ }
|
|
45
|
+ }
|
|
46
|
+}
|
|
47
|
+```
|
|
48
|
+
|
|
49
|
+4. Update project dependencies in `android/app/build.gradle`.
|
|
50
|
+```groovy
|
|
51
|
+android {
|
|
52
|
+ compileSdkVersion 25
|
|
53
|
+ buildToolsVersion "27.0.3"
|
|
54
|
+
|
|
55
|
+ compileOptions {
|
|
56
|
+ sourceCompatibility JavaVersion.VERSION_1_8
|
|
57
|
+ targetCompatibility JavaVersion.VERSION_1_8
|
|
58
|
+ }
|
|
59
|
+ ...
|
|
60
|
+}
|
|
61
|
+
|
|
62
|
+dependencies {
|
|
63
|
+ implementation fileTree(dir: "libs", include: ["*.jar"])
|
|
64
|
+ implementation "com.android.support:appcompat-v7:25.4.0"
|
|
65
|
+ implementation "com.facebook.react:react-native:+"
|
|
66
|
+ implementation project(':react-native-navigation')
|
|
67
|
+}
|
|
68
|
+```
|
|
69
|
+
|
|
70
|
+5. Make sure you're using the new gradle plugin, edit `android/gradle/wrapper/gradle-wrapper.properties`
|
|
71
|
+```diff
|
|
72
|
+distributionBase=GRADLE_USER_HOME
|
|
73
|
+distributionPath=wrapper/dists
|
|
74
|
+zipStoreBase=GRADLE_USER_HOME
|
|
75
|
+zipStorePath=wrapper/dists
|
|
76
|
++distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
|
|
77
|
+-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
|
78
|
+```
|
|
79
|
+
|
|
80
|
+6. Update `gradle.properties` and disable incremental resource processing
|
|
81
|
+```diff
|
|
82
|
++# Disable incremental resource processing as it broke relase build
|
|
83
|
++android.enableAapt2=false
|
|
84
|
+```
|
|
85
|
+
|
|
86
|
+7. In `MainActivity.java` it should extend `com.reactnativenavigation.NavigationActivity` instead of `ReactActivity`.
|
33
|
87
|
|
34
|
88
|
This file can be located in `android/app/src/main/java/com/yourproject/`.
|
35
|
89
|
|
|
@@ -43,7 +97,7 @@
|
43
|
97
|
|
44
|
98
|
If you have any **react-native** related methods, you can safely delete them.
|
45
|
99
|
|
46
|
|
-5. In `MainApplication.java`, add the following
|
|
100
|
+8. In `MainApplication.java`, add the following
|
47
|
101
|
```java
|
48
|
102
|
import com.reactnativenavigation.NavigationApplication;
|
49
|
103
|
|
|
@@ -65,7 +119,7 @@
|
65
|
119
|
|
66
|
120
|
Make sure that `isDebug` methods is implemented.
|
67
|
121
|
|
68
|
|
-6. Update `AndroidManifest.xml` and set **android:name** value to `.MainApplication`
|
|
122
|
+9. Update `AndroidManifest.xml` and set **android:name** value to `.MainApplication`
|
69
|
123
|
```xml
|
70
|
124
|
<application
|
71
|
125
|
android:name=".MainApplication"
|