react-native -v): 0.56.0App should compile
Gradle fails with error:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.
Run the app with react-native run-android
build.gradle
ext {
buildToolsVersion = "26.0.3"
minSdkVersion = 16
compileSdkVersion = 26
targetSdkVersion = 26
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "11.6.2"
}
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:3.1.2'
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
google()
maven { url "$rootDir/../node_modules/react-native/android" }
maven { url "$rootDir/../node_modules/react-native-background-geolocation/android/libs" }
maven { url "$rootDir/../node_modules/react-native-background-fetch/android/libs" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://jitpack.io" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://raw.githubusercontent.com/layerhq/Atlas-Android/master/releases/" }
}
}
app/build.gradle
apply plugin: "com.android.application"
import com.android.build.OutputFile
project.ext.react = [
bundleInStaging: true,
devDisabledInStaging: true,
inputExcludes: ["ios/**", "__tests__/**", "bundle_out/**"]
]
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 = false
task switchToDebug(type: Copy) {
description = 'Switches to DEBUG google-services.json'
from "src/debug"
include "google-services.json"
into "."
}
task switchToRelease(type: Copy) {
description = 'Switches to RELEASE google-services.json'
from "src/release"
include "google-services.json"
into "."
}
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
processStagingGoogleServices.dependsOn switchToDebug
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
applicationId "------"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode -----
versionName -----
ndk {
abiFilters "armeabi-v7a", "x86"
}
multiDexEnabled true
}
signingConfigs {
release {
if (project.hasProperty(----)) {
storeFile file(----)
storePassword ----
keyAlias ----
keyPassword ----
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}
staging {
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
matchingFallbacks = ['debug', 'release']
}
}
// 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-background-geolocation')
compile project(':react-native-background-fetch')
compile project(':bugsnag-react-native')
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms'
}
compile(project(':react-native-fcm')) {
exclude group: "com.google.firebase"
}
compile(project(':react-native-device-info')) {
exclude group: "com.google.android.gms"
}
compile 'com.rollbar:rollbar-android:0.2.1'
compile project(':react-native-sensitive-info')
compile project(':react-native-i18n')
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.react:react-native:+'
compile 'org.slf4j:slf4j-nop:1.7.25'
compile 'com.layer.atlas:layer-atlas:0.4.20'
compile 'io.intercom.android:intercom-sdk-base:4.+'
compile 'io.intercom.android:intercom-sdk-fcm:4.+'
compile 'com.mixpanel.android:mixpanel-android:5.+'
compile('com.google.android.gms:play-services-base:11.6.2') {
force = true;
}
compile('com.google.android.gms:play-services-maps:11.6.2') {
force = true;
}
compile('com.google.android.gms:play-services-gcm:11.6.2') {
force = true;
}
compile('com.google.firebase:firebase-core:11.6.2') {
force = true;
}
compile('com.google.firebase:firebase-messaging:11.6.2') {
force = true;
}
compile('com.android.support:support-v4:26.1.0') {
force = true;
}
compile('com.android.support:multidex:1.0.3')
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:26.1.0'
}
}
}
// 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'
You have many issues in your app/build.gradle.
You鈥檙e aware of the purpose of the gradle config params in your Android/build.gradle? So that you don鈥檛 hardcore important dependence versions, such as these:
compile('com.google.android.gms:play-services-base:11.6.2') {
force = true;
}
compile('com.google.android.gms:play-services-maps:11.6.2') {
force = true;
}
compile('com.google.android.gms:play-services-gcm:11.6.2') {
force = true;
}
compile('com.google.firebase:firebase-core:11.6.2') {
force = true;
}
compile('com.google.firebase:firebase-messaging:11.6.2') {
force = true;
}
compile('com.android.support:support-v4:26.1.0') {
force = true;
}
Are you aware that many popular modules are also aware of those same gradle config params, so you no longer have to do all that exclude / force monkey business?
Your build.gradle is a mess.
@christocracy I'm aware of that but even after cleaning my gradle file to accept the project level configs I have the same error on the compilation.
Any idea on how this can be fixed?
Thanks
Post your 2 updated gradle files. For app/build.gradle, I'm only interested in the dependencies block.
Any idea on how this can be fixed?
What do you think we're doing here?
build.gradle
ext {
buildToolsVersion = "26.0.3"
minSdkVersion = 16
compileSdkVersion = 26
targetSdkVersion = 26
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "11.6.2"
}
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:3.1.2'
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
google()
maven { url "$rootDir/../node_modules/react-native/android" }
maven { url "$rootDir/../node_modules/react-native-background-geolocation/android/libs" }
maven { url "$rootDir/../node_modules/react-native-background-fetch/android/libs" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://jitpack.io" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://raw.githubusercontent.com/layerhq/Atlas-Android/master/releases/" }
}
}
app/build.gradle
dependencies {
def playServicesVersion = rootProject.googlePlayServicesVersion
def supportLibVersion = rootProject.supportLibVersion
compile project(':react-native-background-geolocation')
compile project(':react-native-background-fetch')
compile project(':bugsnag-react-native')
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms'
}
compile(project(':react-native-fcm')) {
exclude group: "com.google.firebase"
}
compile(project(':react-native-device-info')) {
exclude group: "com.google.android.gms"
}
compile 'com.rollbar:rollbar-android:0.2.1'
compile project(':react-native-sensitive-info')
compile project(':react-native-i18n')
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.react:react-native:+'
compile 'org.slf4j:slf4j-nop:1.7.25'
compile 'com.layer.atlas:layer-atlas:0.4.20'
compile 'io.intercom.android:intercom-sdk-base:4.+'
compile 'io.intercom.android:intercom-sdk-fcm:4.+'
compile 'com.mixpanel.android:mixpanel-android:5.+'
compile "com.google.android.gms:play-services-base:$playServicesVersion"
compile "com.google.android.gms:play-services-maps:$playServicesVersion"
compile "com.google.android.gms:play-services-gcm:$playServicesVersion"
compile "com.google.firebase:firebase-core:$playServicesVersion"
compile "com.google.firebase:firebase-messaging:$playServicesVersion"
compile "com.android.support:support-v4:$supportLibVersion"
compile 'com.android.support:multidex:1.0.3'
configurations.all {
resolutionStrategy {
force "com.android.support:support-v4:$supportLibVersion"
}
}
}
Right now they are like this and the compilation error is still:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: Error while generating the main dex list.
Thanks
Why are you doing this?
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms'
}
compile(project(':react-native-fcm')) {
exclude group: "com.google.firebase"
}
compile(project(':react-native-device-info')) {
exclude group: "com.google.android.gms"
}
compile "com.google.android.gms:play-services-base:$playServicesVersion"
compile "com.google.android.gms:play-services-maps:$playServicesVersion"
compile "com.google.android.gms:play-services-gcm:$playServicesVersion"
compile "com.google.firebase:firebase-core:$playServicesVersion"
compile "com.google.firebase:firebase-messaging:$playServicesVersion"
react-native-maps, react-native-fcm and react-native-device-info are all aware of Gradle Config properties and will use them when provided.
See see which gradle config properties each of your 3rd-party modules support, see their build.gradle.
Eg: react-native-fcm/android/build.gradle. You'll find when you observe these build.gradle of your other modules that they're all aware of these same variables. Sometimes there are other interesting ones too that you might add to your android/build.gradle, like these ones in react-native-fcm.
They are like this because when I integrated those modules for the first time I needed that conflict resolution.
Even what I take that out and rely on the modules setup for the dependency global versions the dex issue still happens.
@christocracy tried to update everything but still got the same error. Gradle files look like this:
ext {
buildToolsVersion = "26.0.3"
minSdkVersion = 16
compileSdkVersion = 26
targetSdkVersion = 26
supportLibVersion = "26.1.0"
googlePlayServicesVersion = "15.0.1"
firebaseCoreVersion = "16.0.1"
firebaseMessagingVersion = "17.3.0"
}
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
classpath 'com.google.gms:google-services:4.0.1'
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
google()
maven { url "$rootDir/../node_modules/react-native/android" }
maven { url "$rootDir/../node_modules/react-native-background-geolocation/android/libs" }
maven { url "$rootDir/../node_modules/react-native-background-fetch/android/libs" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://jitpack.io" }
maven { url "https://raw.githubusercontent.com/layerhq/releases-android/master/releases/" }
maven { url "https://raw.githubusercontent.com/layerhq/Atlas-Android/master/releases/" }
}
}
dependencies {
def playServicesVersion = rootProject.googlePlayServicesVersion
def supportLibVersion = rootProject.supportLibVersion
compile project(':react-native-background-geolocation')
compile project(':react-native-background-fetch')
compile project(':bugsnag-react-native')
compile project(':react-native-maps')
compile project(':react-native-fcm')
compile project(':react-native-device-info')
compile 'com.rollbar:rollbar-android:0.2.1'
compile project(':react-native-sensitive-info')
compile project(':react-native-i18n')
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.react:react-native:+'
compile 'org.slf4j:slf4j-nop:1.7.25'
compile 'com.layer.atlas:layer-atlas:0.4.20'
compile 'io.intercom.android:intercom-sdk-base:4.+'
compile 'io.intercom.android:intercom-sdk-fcm:4.+'
compile 'com.mixpanel.android:mixpanel-android:5.+'
compile "com.google.android.gms:play-services-base:$playServicesVersion"
compile "com.google.android.gms:play-services-maps:$playServicesVersion"
compile "com.google.android.gms:play-services-gcm:$playServicesVersion"
compile "com.google.firebase:firebase-core:$firebaseCoreVersion"
compile "com.google.firebase:firebase-messaging:$firebaseMessagingVersion"
compile "com.android.support:support-v4:$supportLibVersion"
compile 'com.android.support:multidex:1.0.3'
configurations.all {
resolutionStrategy {
force "com.android.support:support-v4:$supportLibVersion"
}
}
}
Get rid of this:
compile "com.google.android.gms:play-services-base:$playServicesVersion"
compile "com.google.android.gms:play-services-maps:$playServicesVersion"
compile "com.google.android.gms:play-services-gcm:$playServicesVersion"
compile "com.google.firebase:firebase-core:$firebaseCoreVersion"
compile "com.google.firebase:firebase-messaging:$firebaseMessagingVersion"
What is this stuff?
compile 'org.slf4j:slf4j-nop:1.7.25'
compile 'com.layer.atlas:layer-atlas:0.4.20'
compile 'io.intercom.android:intercom-sdk-base:4.+'
compile 'io.intercom.android:intercom-sdk-fcm:4.+'
compile 'com.mixpanel.android:mixpanel-android:5.+'
Removed those explicit lib compilations but the error persists.
Those are libraries that the app uses. Layer messaging, Intercom and Mixpanel
The following will print a number of dependency trees. They're all the same. Just post one here:
$ cd android
$ ./gradlew app:dependencies
Here it is:
+--- project :react-native-background-geolocation
| +--- com.facebook.react:react-native:+ -> 0.56.0
| | +--- javax.inject:javax.inject:1
| | +--- com.android.support:appcompat-v7:26.1.0 -> 27.1.1
| | | +--- com.android.support:support-annotations:27.1.1
| | | +--- com.android.support:support-core-utils:27.1.1
| | | | +--- com.android.support:support-annotations:27.1.1
| | | | \--- com.android.support:support-compat:27.1.1
| | | | +--- com.android.support:support-annotations:27.1.1
| | | | \--- android.arch.lifecycle:runtime:1.1.0
| | | | +--- android.arch.lifecycle:common:1.1.0
| | | | \--- android.arch.core:common:1.1.0
| | | +--- com.android.support:support-fragment:27.1.1
| | | | +--- com.android.support:support-compat:27.1.1 (*)
| | | | +--- com.android.support:support-core-ui:27.1.1
| | | | | +--- com.android.support:support-annotations:27.1.1
| | | | | +--- com.android.support:support-compat:27.1.1 (*)
| | | | | \--- com.android.support:support-core-utils:27.1.1 (*)
| | | | +--- com.android.support:support-core-utils:27.1.1 (*)
| | | | +--- com.android.support:support-annotations:27.1.1
| | | | +--- android.arch.lifecycle:livedata-core:1.1.0
| | | | | +--- android.arch.lifecycle:common:1.1.0
| | | | | +--- android.arch.core:common:1.1.0
| | | | | \--- android.arch.core:runtime:1.1.0
| | | | | \--- android.arch.core:common:1.1.0
| | | | \--- android.arch.lifecycle:viewmodel:1.1.0
| | | +--- com.android.support:support-vector-drawable:27.1.1
| | | | +--- com.android.support:support-annotations:27.1.1
| | | | \--- com.android.support:support-compat:27.1.1 (*)
| | | \--- com.android.support:animated-vector-drawable:27.1.1
| | | +--- com.android.support:support-vector-drawable:27.1.1 (*)
| | | \--- com.android.support:support-core-ui:27.1.1 (*)
| | +--- com.facebook.fbui.textlayoutbuilder:textlayoutbuilder:1.0.0
| | | \--- com.facebook.fbui.textlayoutbuilder:staticlayout-proxy:1.0
| | +--- com.facebook.fresco:fresco:1.9.0
| | | +--- com.facebook.fresco:fbcore:1.9.0
| | | +--- com.facebook.fresco:drawee:1.9.0
| | | | +--- com.facebook.fresco:fbcore:1.9.0
| | | | \--- com.facebook.fresco:imagepipeline:1.9.0
| | | | +--- com.facebook.fresco:imagepipeline-base:1.9.0
| | | | | +--- com.facebook.soloader:soloader:0.3.0
| | | | | +--- com.parse.bolts:bolts-tasks:1.4.0
| | | | | \--- com.facebook.fresco:fbcore:1.9.0
| | | | +--- com.facebook.soloader:soloader:0.3.0
| | | | +--- com.parse.bolts:bolts-tasks:1.4.0
| | | | \--- com.facebook.fresco:fbcore:1.9.0
| | | +--- com.facebook.fresco:imagepipeline:1.9.0 (*)
| | | \--- com.facebook.soloader:soloader:0.3.0
| | +--- com.facebook.fresco:imagepipeline-okhttp3:1.9.0
| | | +--- com.squareup.okhttp3:okhttp:3.10.0
| | | | \--- com.squareup.okio:okio:1.14.0
| | | +--- com.facebook.fresco:fbcore:1.9.0
| | | \--- com.facebook.fresco:imagepipeline:1.9.0 (*)
| | +--- com.facebook.soloader:soloader:0.3.0
| | +--- com.google.code.findbugs:jsr305:3.0.0
| | +--- com.squareup.okhttp3:okhttp:3.10.0 (*)
| | +--- com.squareup.okhttp3:okhttp-urlconnection:3.10.0
| | | \--- com.squareup.okhttp3:okhttp:3.10.0 (*)
| | +--- com.squareup.okio:okio:1.14.0
| | \--- org.webkit:android-jsc:r174650
| +--- com.google.android.gms:play-services-location:15.0.1
| | +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1
| | | +--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1
| | | | \--- com.android.support:support-v4:26.1.0
| | | | +--- com.android.support:support-compat:26.1.0 -> 27.1.1 (*)
| | | | +--- com.android.support:support-media-compat:26.1.0
| | | | | +--- com.android.support:support-annotations:26.1.0 -> 27.1.1
| | | | | \--- com.android.support:support-compat:26.1.0 -> 27.1.1 (*)
| | | | +--- com.android.support:support-core-utils:26.1.0 -> 27.1.1 (*)
| | | | +--- com.android.support:support-core-ui:26.1.0 -> 27.1.1 (*)
| | | | \--- com.android.support:support-fragment:26.1.0 -> 27.1.1 (*)
| | | \--- com.google.android.gms:play-services-tasks:[15.0.1] -> 15.0.1
| | | \--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-places-placereport:[15.0.1,16.0.0) -> 15.0.1
| | | \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| | \--- com.google.android.gms:play-services-tasks:[15.0.1,16.0.0) -> 15.0.1 (*)
| +--- org.greenrobot:eventbus:3.0.0
| +--- com.squareup.okhttp3:okhttp:3.10.0 (*)
| +--- com.transistorsoft:tslocationmanager:+ -> 2.12.14
| +--- org.slf4j:slf4j-api:1.7.21 -> 1.7.25
| +--- com.github.tony19:logback-android:1.1.1-9
| | \--- com.github.tony19:apktool-lib:1.4.4-5
| \--- com.intentfilter:android-permissions:0.1.6
+--- project :react-native-background-fetch
| +--- com.facebook.react:react-native:+ -> 0.56.0 (*)
| \--- com.transistorsoft:tsbackgroundfetch:+ -> 0.2.0
+--- project :bugsnag-react-native
| +--- com.bugsnag:bugsnag-android:4.5.0
| | \--- com.android.support:support-annotations:27.0.0 -> 27.1.1
| \--- com.facebook.react:react-native:+ -> 0.56.0 (*)
+--- project :react-native-maps
| +--- com.google.android.gms:play-services-base:15.0.1 (*)
| \--- com.google.android.gms:play-services-maps:15.0.1
| +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1 (*)
| \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
+--- project :react-native-fcm
| +--- com.facebook.react:react-native:+ -> 0.56.0 (*)
| +--- com.google.firebase:firebase-core:16.0.1
| | +--- com.google.firebase:firebase-analytics:16.0.1
| | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:[16.0.0] -> 16.0.0
| | | +--- com.google.android.gms:play-services-stats:15.0.1
| | | | \--- com.google.android.gms:play-services-basement:[15.0.1] -> 15.0.1 (*)
| | | +--- com.google.firebase:firebase-analytics-impl:[16.1.1] -> 16.1.1
| | | | +--- com.google.android.gms:play-services-ads-identifier:15.0.1
| | | | | \--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| | | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | | +--- com.google.android.gms:play-services-measurement-base:[16.0.0] -> 16.0.0
| | | | +--- com.google.android.gms:play-services-stats:15.0.1 (*)
| | | | +--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | | | +--- com.google.firebase:firebase-common:16.0.0 -> 16.0.1
| | | | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | | | \--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | | | \--- com.google.firebase:firebase-iid:16.0.0 -> 17.0.0
| | | | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | | +--- com.google.android.gms:play-services-stats:15.0.1 (*)
| | | | +--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | | | +--- com.google.firebase:firebase-common:16.0.1 (*)
| | | | \--- com.google.firebase:firebase-iid-interop:16.0.0
| | | | +--- com.google.android.gms:play-services-base:15.0.1 (*)
| | | | \--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | | \--- com.google.firebase:firebase-common:16.0.0 -> 16.0.1 (*)
| | \--- com.google.firebase:firebase-measurement-connector-impl:16.0.1
| | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | +--- com.google.android.gms:play-services-measurement-base:[16.0.0] -> 16.0.0
| | +--- com.google.firebase:firebase-analytics:[16.0.1] -> 16.0.1 (*)
| | +--- com.google.firebase:firebase-analytics-impl:[16.1.1] -> 16.1.1 (*)
| | +--- com.google.firebase:firebase-common:16.0.0 -> 16.0.1 (*)
| | \--- com.google.firebase:firebase-measurement-connector:16.0.0
| | \--- com.google.android.gms:play-services-basement:15.0.1 (*)
| +--- com.google.firebase:firebase-messaging:17.3.0
| | +--- com.google.android.gms:play-services-basement:15.0.1 (*)
| | +--- com.google.android.gms:play-services-tasks:15.0.1 (*)
| | +--- com.google.firebase:firebase-common:16.0.1 (*)
| | +--- com.google.firebase:firebase-iid:[17.0.0] -> 17.0.0 (*)
| | \--- com.google.firebase:firebase-measurement-connector:16.0.0 (*)
| \--- me.leolin:ShortcutBadger:1.1.17
+--- project :react-native-device-info
| +--- com.facebook.react:react-native:+ -> 0.56.0 (*)
| \--- com.google.android.gms:play-services-gcm:15.0.1
| +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1 (*)
| +--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| +--- com.google.android.gms:play-services-iid:[15.0.1] -> 15.0.1
| | +--- com.google.android.gms:play-services-base:[15.0.1,16.0.0) -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-basement:[15.0.1,16.0.0) -> 15.0.1 (*)
| | +--- com.google.android.gms:play-services-stats:[15.0.1,16.0.0) -> 15.0.1 (*)
| | \--- com.google.android.gms:play-services-tasks:[15.0.1,16.0.0) -> 15.0.1 (*)
| \--- com.google.android.gms:play-services-stats:[15.0.1,16.0.0) -> 15.0.1 (*)
+--- com.rollbar:rollbar-android:0.2.1
+--- project :react-native-sensitive-info
| \--- com.facebook.react:react-native:0.20.1 -> 0.56.0 (*)
+--- project :react-native-i18n
| \--- com.facebook.react:react-native:+ -> 0.56.0 (*)
+--- com.facebook.react:react-native:+ -> 0.56.0 (*)
+--- org.slf4j:slf4j-nop:1.7.25
| \--- org.slf4j:slf4j-api:1.7.25
+--- com.layer.atlas:layer-atlas:0.4.20
| +--- com.layer.sdk:layer-sdk:0.23.25
| | +--- org.slf4j:slf4j-nop:1.7.12 -> 1.7.25 (*)
| | +--- com.google.code.gson:gson:2.8.0
| | \--- com.firebase:firebase-jobdispatcher:0.7.0
| | \--- com.android.support:support-v4:25.0.0 -> 26.1.0 (*)
| +--- org.slf4j:slf4j-nop:1.7.2 -> 1.7.25 (*)
| +--- com.google.android.gms:play-services-location:10.2.0 -> 15.0.1 (*)
| +--- com.squareup.picasso:picasso:2.5.2
| +--- com.davemorrissey.labs:subsampling-scale-image-view:3.4.1
| | \--- com.android.support:support-annotations:20.0.0 -> 27.1.1
| +--- com.android.support:recyclerview-v7:24.2.1 -> 27.1.1
| | +--- com.android.support:support-annotations:27.1.1
| | +--- com.android.support:support-compat:27.1.1 (*)
| | \--- com.android.support:support-core-ui:27.1.1 (*)
| +--- com.android.support:appcompat-v7:24.2.1 -> 27.1.1 (*)
| \--- com.android.support:design:24.2.1 -> 27.1.1
| +--- com.android.support:support-v4:27.1.1 -> 26.1.0 (*)
| +--- com.android.support:appcompat-v7:27.1.1 (*)
| +--- com.android.support:recyclerview-v7:27.1.1 (*)
| \--- com.android.support:transition:27.1.1
| +--- com.android.support:support-annotations:27.1.1
| \--- com.android.support:support-compat:27.1.1 (*)
+--- io.intercom.android:intercom-sdk-base:4.+ -> 4.1.9
| +--- com.android.support:design:27.1.1 (*)
| +--- com.android.support:appcompat-v7:27.1.1 (*)
| +--- com.android.support:animated-vector-drawable:27.1.1 (*)
| +--- com.android.support:support-vector-drawable:27.1.1 (*)
| +--- com.android.support:support-compat:27.1.1 (*)
| +--- com.android.support:support-core-utils:27.1.1 (*)
| +--- com.android.support:support-core-ui:27.1.1 (*)
| +--- com.android.support:support-fragment:27.1.1 (*)
| +--- com.android.support:support-annotations:27.1.1
| +--- com.android.support:recyclerview-v7:27.1.1 (*)
| +--- com.intercom:android-composer:2.0.0
| \--- com.intercom:android-composer-gallery:2.0.0
+--- io.intercom.android:intercom-sdk-fcm:4.+ -> 4.1.9
| +--- io.intercom.android:intercom-sdk-base:4.1.9 (*)
| \--- com.google.firebase:firebase-messaging:11.8.0 -> 17.3.0 (*)
+--- com.mixpanel.android:mixpanel-android:5.+ -> 5.4.1
+--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support:multidex:1.0.3
\--- com.android.support:multidex:1.0.2 -> 1.0.3
I don't know. Have you Googled it?
Yes. Not much luck. Really wanted to get this integrated, purchase the license and get it on the app
I suggest you first try with a blank app first.
$ react-native init Foo
And open your app with Android Studio. See if Android Studio is reporting reporting any warnings.
@christocracy using the stacktrace option gave me this:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithMultidexlistForStaging'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: Error while generating the main dex list.
at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 29 more
Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.
at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:127)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
... 41 more
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: org.slf4j.impl.StaticMDCBinder
at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:114)
... 44 more
Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: org.slf4j.impl.StaticMDCBinder
at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64)
at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25)
at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24)
at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:121)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:122)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:36)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:95)
at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)
... 45 more
Seems like the issue is with the slf4j dependency.
Any idea on how is it happening or how can it be fixed?
Thanks!
Where were you instructed you to import compile 'org.slf4j:slf4j-nop:1.7.25'?
BackgroundGeolocation imports slf4j-api:1.7.21
That is my own dependency but when I remove it the same error happens:
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: org.slf4j.impl.StaticMarkerBinder
at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:114)
... 44 more
Caused by: com.android.tools.r8.errors.CompilationError: Program type already present: org.slf4j.impl.StaticMarkerBinder
at com.android.tools.r8.utils.ProgramClassCollection.resolveClassConflictImpl(ProgramClassCollection.java:64)
at com.android.tools.r8.utils.ProgramClassCollection.lambda$create$0(ProgramClassCollection.java:25)
at com.android.tools.r8.utils.ProgramClassCollection.create(ProgramClassCollection.java:24)
at com.android.tools.r8.graph.LazyLoadedDexApplication$Builder.build(LazyLoadedDexApplication.java:121)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:122)
at com.android.tools.r8.dex.ApplicationReader.read(ApplicationReader.java:86)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:36)
at com.android.tools.r8.GenerateMainDexList.run(GenerateMainDexList.java:95)
at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:83)
... 45 more
Clean your build in Android Studio.
Already did that without any different result.
Tried to exclude org.slf4j from the lib compilation but doesn't work either.
@christocracy Managed to get the build done by excluding the org.slf4 from the other dependency. Seems to be working now so far. Will close the issue. Thanks
Good stuff.
Most helpful comment
@christocracy Managed to get the build done by excluding the org.slf4 from the other dependency. Seems to be working now so far. Will close the issue. Thanks