com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver
See original GitHub issuecom.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/os/ResultReceiver
got above error. you can find all dependency below,any help will be well appreciated. Thank you
React Native version: 0.55 1>> gradle.properties android.useAndroidX = true android.enableJetifier = true android.useDeprecatedNdk=true MYAPP_RELEASE_STORE_FILE=***** MYAPP_RELEASE_KEY_ALIAS=***** android.enableAapt2=false
2>>android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { repositories { google() maven { url “https://maven.google.com” } jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:3.0.1’ classpath ‘com.google.gms:google-services:4.0.1’ classpath ‘com.android.tools.build:gradle:2.2.3’ // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
allprojects { repositories { mavenLocal() google() maven { url “$rootDir/…/node_modules/react-native/android” } maven { url “https://maven.google.com” } maven { url “https://jitpack.io” } jcenter() } }
subprojects { afterEvaluate {project -> if (project.hasProperty(“android”)) { android { compileSdkVersion 28 buildToolsVersion ‘28.0.3’ } } } }
3>>android/app/build.gradle
apply plugin: “com.android.application”
import com.android.build.OutputFile
/**
- The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
- and bundleReleaseJsAndAssets).
- These basically call
react-native bundle
with the correct arguments during the Android build - cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
- bundle directly from the development server. Below you can see all the possible configurations
- and their defaults. If you decide to add a configuration block, make sure to add it before the
apply from: "../../node_modules/react-native/react.gradle"
line.- project.ext.react = [
- // the name of the generated asset file containing your JS bundle
- bundleAssetName: “index.android.bundle”,
- // the entry file for bundle generation
- entryFile: “index.android.js”,
- // whether to bundle JS and assets in debug mode
- bundleInDebug: false,
- // whether to bundle JS and assets in release mode
- bundleInRelease: true,
- // whether to bundle JS and assets in another build variant (if configured).
- // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
- // The configuration property can be in the following formats
- // ‘bundleIn${productFlavor}${buildType}’
- // ‘bundleIn${buildType}’
- // bundleInFreeDebug: true,
- // bundleInPaidRelease: true,
- // bundleInBeta: true,
- // whether to disable dev mode in custom build variants (by default only disabled in release)
- // for example: to disable dev mode in the staging build type (if configured)
- devDisabledInStaging: true,
- // The configuration property can be in the following formats
- // ‘devDisabledIn${productFlavor}${buildType}’
- // ‘devDisabledIn${buildType}’
- // the root of your project, i.e. where “package.json” lives
- root: “…/…/”,
- // where to put the JS bundle asset in debug mode
- jsBundleDirDebug: “$buildDir/intermediates/assets/debug”,
- // where to put the JS bundle asset in release mode
- jsBundleDirRelease: “$buildDir/intermediates/assets/release”,
- // where to put drawable resources / React Native assets, e.g. the ones you use via
- // require(‘./image.png’)), in debug mode
- resourcesDirDebug: “$buildDir/intermediates/res/merged/debug”,
- // where to put drawable resources / React Native assets, e.g. the ones you use via
- // require(‘./image.png’)), in release mode
- resourcesDirRelease: “$buildDir/intermediates/res/merged/release”,
- // by default the gradle tasks are skipped if none of the JS files or assets change; this means
- // that we don’t look at files in android/ or ios/ to determine whether the tasks are up to
- // date; if you have any other folders that you want to ignore for performance reasons (gradle
- // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
- // for example, you might want to remove it from here.
- inputExcludes: [“android/", "ios/”],
- // override which node gets called and with what additional arguments
- nodeExecutableAndArgs: [“node”],
- // supply additional arguments to the packager
- extraPackagerArgs: []
- ] */
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
android { compileSdkVersion 28 buildToolsVersion “28.0.3”
defaultConfig {
applicationId "*******"
minSdkVersion 16
targetSdkVersion 28
versionCode 12
versionName "5.1"
multiDexEnabled true
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
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
}
}
// 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-sound’) compile project(‘:react-native-image-crop-picker’) compile project(‘:react-native-fs’) compile project(‘:react-native-exit-app’) compile project(‘:react-native-device-info’) compile project(‘:react-native-config’) compile project(‘:react-native-bluetooth-serial’) compile project(‘:react-native-background-timer’) compile project(‘:react-native-android-background-timer’) compile project(‘:@remobile/react-native-toast’) compile project(‘:react-native-push-notification’) compile project(‘:react-native-fcm’)
compile project(':react-native-sunmi-inner-printer')
implementation (project(':react-native-camera')) {
exclude group: "com.android.support"
}
implementation 'com.google.firebase:firebase-core:16.0.9'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:28+"
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "com.android.support:exifinterface:+"
implementation "com.android.support:multidex:+"
implementation "com.android.support:multidex-instrumentation:+"
implementation "com.android.support:support-annotations:+"
implementation "com.android.support:support-v4:28+"
compile 'com.google.android.gms:play-services-gcm:16.1.0'
compile 'com.google.android.gms:play-services-analytics:+'
compile 'com.google.android.gms:play-services-location:+'
implementation "android.arch.lifecycle:extensions:+"
}
task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into ‘libs’ } apply plugin: ‘com.google.gms.google-services’ com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
Issue Analytics
- State:
- Created 4 years ago
- Reactions:2
- Comments:8
The first you remove node_modules and npm install. You try find all lib as react-native-device-info, react-native-fcm, react-native-config, react-native-push-notification and edit it to
Good luck !
Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please feel free to create a new issue with up-to-date information.