buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' } } allprojects { repositories { mavenLocal() jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$projectDir/../../react-native/android" } } } apply plugin: 'com.android.library' task forwardDebugPort(type: Exec) { def adb = android.getAdbExe()?.toString() ?: 'false' commandLine adb, 'forward', 'tcp:8083', 'tcp:8083' ignoreExitValue true doLast { if (execResult.getExitValue() != 0) { logger.error( '===========================================================================\n' + 'WARNING: Failed to automatically forward port 8083.\n' + 'In order to use Realm in Chrome debugging mode, port 8083 must be forwarded\n' + 'from localhost to the device or emulator being used to run the application.\n' + 'You may need to add the appropriate flags to the command that failed:\n' + ' adb forward tcp:8083 tcp:8083\n' + '===========================================================================\n' ) } } } android { compileSdkVersion rootProject.hasProperty("compileSdkVersion") ? rootProject.compileSdkVersion : 26 buildToolsVersion rootProject.hasProperty("buildToolsVersion") ? rootProject.buildToolsVersion : "26.0.2" defaultConfig { minSdkVersion rootProject.hasProperty("minSdkVersion") ? rootProject.minSdkVersion : 16 targetSdkVersion rootProject.hasProperty("targetSdkVersion") ? rootProject.targetSdkVersion : 26 } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn forwardDebugPort } } String getAppId () { String myappId; try { String build = new File("$projectDir/../../../android/app/build.gradle").text def matcher = build =~ 'applicationId.*"' def appId = matcher.size() > 0 ? matcher[0].trim() - 'applicationId' - ~/\s/ : ''; myappId = appId.replaceAll('"', '') } catch(all) {} return myappId } apply from: 'analytics.gradle' import groovy.json.JsonSlurper def getNpmVersion() { def inputFile = new File(buildscript.sourceFile.getParent() + "/../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) return packageJson["version"] } task send(type: SendAnalyticsTask) << { applicationId = getAppId() version = getNpmVersion().trim() } preBuild.dependsOn send def dependencyType = "implementation" try { project.getConfigurations().getByName("implementation") } catch (UnknownConfigurationException e) { dependencyType = "compile" // Pre 3.0 Android Gradle Plugin } project.dependencies { add(dependencyType, fileTree(dir: 'libs', include: ['*.jar'])) add(dependencyType, 'org.nanohttpd:nanohttpd:2.2.0') add(dependencyType, 'com.facebook.react:react-native:+') }