This is React Native project. I have an error after successful build in Android Studio Emulator:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/FirebaseApp
My files:
package.json:
..."react-native": "^0.55.3","react-native-camera": "1.1.2","react-native-check-box": "^2.1.0","react-native-extended-stylesheet": "^0.8.1","react-native-firebase": "^4.2.0","react-native-geocoder": "^0.5.0","react-native-git-upgrade": "^0.2.7","react-native-htmlview": "^0.12.1","react-native-image-picker": "^0.26.10","react-native-linear-gradient": "^2.4.0","react-native-local-storage": "^1.5.2","react-native-maps": "^0.21.0","react-native-modal": "^5.4.0","react-native-modal-dropdown": "^0.6.1","react-native-read-more-text": "^1.0.0","react-native-router-flux": "^4.0.0-beta.27","react-native-svg-image": "^2.0.1","react-native-text-input-mask": "^0.7.0",...
android/app/build.gradle:
... android { compileSdkVersion 27 buildToolsVersion "27.0.1" defaultConfig { applicationId "com.something.anything" minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } multiDexEnabled true } signingConfigs { release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86" } } buildTypes { release { signingConfig signingConfigs.release minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } // applicationVariants are e.g. debug, release applicationVariants.all { variant -> variant.outputs.each { output -> // 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] 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 } } }}dependencies { compile(project(':react-native-firebase')) { transitive = false } compile project(':react-native-geocoder') compile(project(':react-native-maps')) { exclude group: 'com.google.android.gms', module: 'play-services-base' exclude group: 'com.google.android.gms', module: 'play-services-maps' exclude group: 'com.google.android.gms', module: 'play-services-location' } compile 'com.google.android.gms:play-services-base:15.+' compile 'com.google.android.gms:play-services-maps:15.+' compile 'com.google.android.gms:play-services-location:15.+' compile (project(':react-native-camera')) { exclude group: "com.google.android.gms" compile 'com.android.support:exifinterface:25.+' compile ('com.google.android.gms:play-services-vision:12.0.1') { force = true } } compile project(':react-native-text-input-mask') compile project(':react-native-linear-gradient') compile project(':react-native-image-picker') compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.0.1" compile "com.facebook.react:react-native:+" // From node_modules}allprojects { repositories { maven { url "https://jitpack.io" } maven { url "https://maven.google.com" } }}// Run this once to be able to run the application with BUCK// puts all compile dependencies into folder libs for BUCK to usetask copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs'}
android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { mavenLocal() jcenter() maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url "$rootDir/../node_modules/react-native/android" } }}subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.android.support'&& !details.requested.name.contains('multidex') ) { details.useVersion "27.1.0" } } }}
I've tried a lot of solutions but nothing helped.