react-native-firebase/android/build.gradle

104 lines
4.5 KiB
Groovy

buildscript {
ext.firebaseVersion = '12.0.0'
repositories {
jcenter()
google()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'io.fabric.tools:gradle:1.25.1'
}
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
buildToolsVersion "27.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
}
}
productFlavors {
}
}
allprojects {
repositories {
jcenter()
mavenLocal()
maven {
url "https://maven.google.com"
}
}
}
rootProject.gradle.buildFinished { buildResult ->
if (buildResult.getFailure() != null) {
try {
String message = buildResult.getFailure().properties.get("reportableCauses").toString()
if (message.contains("com.android.dex.DexException: Multiple dex files define Lcom/google/") ||
message.contains("java.util.zip.ZipException: duplicate entry: com/google/android/gms/")) {
logger.log(LogLevel.ERROR, "")
logger.log(LogLevel.ERROR, " -----------------------------------------------------------")
logger.log(LogLevel.ERROR, "| REACT NATIVE FIREBASE |")
logger.log(LogLevel.ERROR, " ----------------------------------------------------------- ")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| This is a common build error when using libraries that |")
logger.log(LogLevel.ERROR, "| require google play services. |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| This error occurs because different versions of google |")
logger.log(LogLevel.ERROR, "| play services or google play services modules are being |")
logger.log(LogLevel.ERROR, "| required by different libraries. |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| A temporary fix would be to set: |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| android { multiDexEnabled true } |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| inside your build gradle, however it is recommended for |")
logger.log(LogLevel.ERROR, "| your prod build that you de-duplicate these to minimize |")
logger.log(LogLevel.ERROR, "| bundle size. |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, "| See http://invertase.link/dupe-dex for how to do this. |")
logger.log(LogLevel.ERROR, "| |")
logger.log(LogLevel.ERROR, " ----------------------------------------------------------- ")
}
} catch (Exception exception) {}
}
}
dependencies {
// compile fileTree(include: ['*.jar'], dir: 'libs')
api "com.facebook.react:react-native:+" // From node_modules
api "com.android.support:support-v4:27.0.2"
compileOnly 'me.leolin:ShortcutBadger:1.1.21@aar'
compileOnly "com.google.android.gms:play-services-base:$firebaseVersion"
compileOnly "com.google.firebase:firebase-core:$firebaseVersion"
compileOnly "com.google.firebase:firebase-config:$firebaseVersion"
compileOnly "com.google.firebase:firebase-auth:$firebaseVersion"
compileOnly "com.google.firebase:firebase-database:$firebaseVersion"
compileOnly "com.google.firebase:firebase-storage:$firebaseVersion"
compileOnly "com.google.firebase:firebase-messaging:$firebaseVersion"
compileOnly "com.google.firebase:firebase-crash:$firebaseVersion"
compileOnly "com.google.firebase:firebase-perf:$firebaseVersion"
compileOnly "com.google.firebase:firebase-ads:$firebaseVersion"
compileOnly "com.google.firebase:firebase-firestore:$firebaseVersion"
compileOnly "com.google.firebase:firebase-invites:$firebaseVersion"
compileOnly('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true
}
}