title: Adding 'react-native-camera' dependency Breaks the Project
body: <p>I have a project that includes a few native modules. When I try to integrate the 'react-native-camera' the projects fails to build. Is there any option that I can localize all the dependencies of react-native-camera without affecting the others? Or is there any workaround for this?</p>
  
  <p>settings.gradle</p>
  
  <pre><code>include ':react-native-camera'
  project(':react-native-camera').projectDir = new File(rootProject.projectDir,'../node_modules/react-native-camera/android')
  </code></pre>
  
  <p>Project build.gradle</p>
  
  <pre><code>// Top-level build file where you can add configuration options common to all sub-projects/modules.
  
  buildscript {
      ext {
          buildToolsVersion = "28.0.3"
          minSdkVersion = 16
          compileSdkVersion = 28
          targetSdkVersion = 28
          supportLibVersion = "28.0.0"
      }
      repositories {
          google()
          jcenter()
          maven {
             url 'https://maven.fabric.io/public'
          }
      }
      dependencies {
          classpath 'com.android.tools.build:gradle:3.3.2'
  
          classpath 'com.google.gms:google-services:4.2.0'
  
          classpath 'io.fabric.tools:gradle:1.29.0'
  
  
          // NOTE: Do not place your application dependencies here; they belong
          // in the individual module build.gradle files
      }
  }
  
  allprojects {
      repositories {
          mavenLocal()
          google()
          jcenter()
          maven {
              // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
              url "$rootDir/../node_modules/react-native/android"
          }
          maven { url "https://jitpack.io" } // for ssl pinning module
      }
  }
  </code></pre>
  
  <p>app build.gradle</p>
  
  <pre><code>project.ext.react = [
      entryFile: "index.js"
  ]
  
  apply from: "../../node_modules/react-native/react.gradle"
  
  /**
   * Set this to true to create two separate APKs instead of one:
   *   - An APK that only works on ARM devices
   *   - An APK that only works on x86 devices
   * The advantage is the size of the APK is reduced by about 4MB.
   * Upload all the APKs to the Play Store and people will download
   * the correct one based on the CPU architecture of their device.
   */
  def enableSeparateBuildPerCPUArchitecture = false
  
  /**
   * Run Proguard to shrink the Java bytecode in release builds.
   */
  def enableProguardInReleaseBuilds = true
  
  android {
      compileSdkVersion rootProject.ext.compileSdkVersion
  
      compileOptions {
          sourceCompatibility JavaVersion.VERSION_1_8
          targetCompatibility JavaVersion.VERSION_1_8
      }
  
      defaultConfig {
          applicationId "com.adl.dialog.bizcare"
          minSdkVersion rootProject.ext.minSdkVersion
          targetSdkVersion rootProject.ext.targetSdkVersion
          versionCode 8
          versionName "0.0.6.08"
          missingDimensionStrategy 'react-native-camera', 'general'
      }
      splits {
          abi {
              reset()
              enable enableSeparateBuildPerCPUArchitecture
              universalApk false  // If true, also generate a universal APK
              include "armeabi-v7a", "x86", "arm64-v8a", "x86-64"
          }
      }
      buildTypes {
          release {
              minifyEnabled enableProguardInReleaseBuilds
              proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
          }
      }
      // applicationVariants are e.g. debug, release
      applicationVariants.all { variant -&gt;
          variant.outputs.each { output -&gt;
              // For each separate APK per architecture, set a unique version code as described here:
              // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
              def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86-64": 4]
              def abi = output.getFilter(OutputFile.ABI)
              if (abi != null) {  // null for the universal-debug, universal-release variants
                  output.versionCodeOverride =
                          versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
              }
          }
      }
  
  
  }
  
  
  repositories {
      maven { url 'https://maven.fabric.io/public' }
  }
  
  dependencies {
      implementation project(':react-native-device-info')
      implementation project(':react-native-firebase')
  
      implementation project(':react-native-ssl-pinning')
  
        // Firebase dependencies
      implementation "com.google.android.gms:play-services-base:16.1.0"
      implementation "com.google.firebase:firebase-core:16.0.8"
  
  
      implementation 'com.crashlytics.sdk.android:crashlytics:2.10.0'
  
      implementation project(':react-native-splash-screen')
      implementation project(':react-native-gesture-handler')
      implementation fileTree(dir: "libs", include: ["*.jar"])
      implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
      implementation "com.facebook.react:react-native:+"  // From node_modules
      implementation('com.crashlytics.sdk.android:crashlytics:2.10.0@aar') {
          transitive = true;
      }
      implementation project(':react-native-sms-retriever')
  
      //implementation project(':react-native-camera')
  }
  
  // Run this once to be able to run the application with BUCK
  // puts all compile dependencies into folder libs for BUCK to use
  task copyDownloadableDepsToLibs(type: Copy) {
      from configurations.compile
      into 'libs'
  }
  
  
  apply plugin: 'com.google.gms.google-services'
  
  </code></pre>