Skip to content

Latest commit

 

History

History
105 lines (84 loc) · 3.04 KB

AndroidInstallation.md

File metadata and controls

105 lines (84 loc) · 3.04 KB

1.) In android/app/src/main/AndroidManifest.xml add these permissions

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2.) In android/settings.gradle, includes WebRTCModule

include ':WebRTCModule', ':app'
project(':WebRTCModule').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webrtc/android')

3.) In android/app/build.gradle, add WebRTCModule to dependencies

dependencies {
  ...
  compile project(':WebRTCModule')
}

4.) In android/app/src/main/java/com/xxx/MainApplication.java

React Native versions 0.60.0 after

import com.oney.WebRTCModule.WebRTCModulePackage;  // <--- Add this line
...
    @Override
    protected List<ReactPackage> getPackages() {
      @SuppressWarnings("UnnecessaryLocalVariable")
      List<ReactPackage> packages = new PackageList(this).getPackages();
      // Packages that cannot be autolinked yet can be added manually here, for example:
      // packages.add(new MyReactNativePackage());
      packages.add(new WebRTCModulePackage()); // <-- Add this line
      return packages;
    }

React Native versions 0.60.0 before

import com.oney.WebRTCModule.WebRTCModulePackage;  // <--- Add this line
...

@Override
protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
        new MainReactPackage(),
        new WebRTCModulePackage() // <-- Add this line
    );
}

5.) Enable Java 8 support in your project. You will probably need to have React Native 0.55+ for this.

5.a.) In android/app/build.gradle add inside android section:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

5.b.) In android/build.gradle replace to:

dependencies {
  classpath 'com.android.tools.build:gradle:3.0.1'
}

//...

ext {
  //...
  compileSdkVersion 27
  buildToolsVersion '27.0.3'
  //...
}

5.c.) In android/gradle/wrapper/gradle-wrapper.properties set distributionUrl variable to

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

CLEAN PROCESS

if you encounter any build time errors, like "linking library not found",
try the cleaning steps below, and do it again carefully with every steps.

  1. remove npm module: rm -rf $YourProject/node_modules/react-native-webrtc
  2. clean npm cache: npm cache clean
  3. clear temporary build files ( depends on your env )
    • ANDROID: clear intermediate files in gradle buildDir
    • iOS: in xocde project, click Product -> clean
  4. npm install react-native-webrtc