Unable to merge dex in ionic

Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

7 Likes

How are your building your app?
What is your ionic info output?

C:\Users\hp\ubooktodaywalking>ionic info output
openssl config failed: error:02001003:system library:fopen:No such process

cli packages: (C:\Users\hp\AppData\Roaming\npm\node_modules)

@ionic/cli-utils  : 1.19.1
ionic (Ionic CLI) : 3.19.1

global packages:

cordova (Cordova CLI) : 8.0.0

local packages:

@ionic/app-scripts : 3.1.8
Cordova Platforms  : android 7.0.0
Ionic Framework    : ionic-angular 3.9.2

System:

Android SDK Tools : 26.1.1
Node              : v8.9.3
npm               : 5.5.1
OS                : Windows 10

Environment Variables:

ANDROID_HOME : C:\Users\hp\AppData\Local\Android\sdk

Misc:

backend : pro

C:\Users\hp\ubooktodaywalking>

I have the same problem

:CordovaLib:preDebugBuild

UP-TO-DATE

:CordovaLib:compileDebugAidl

UP-TO-DATE

:CordovaLib:compileDebugRenderscript

UP-TO-DATE

:CordovaLib:checkDebugManifest

UP-TO-DATE

:CordovaLib:generateDebugBuildConfig

UP-TO-DATE

:CordovaLib:prepareLintJar

UP-TO-DATE

:CordovaLib:generateDebugResValues

UP-TO-DATE

:CordovaLib:generateDebugResources

UP-TO-DATE

:CordovaLib:packageDebugResources

UP-TO-DATE

:CordovaLib:platformAttrExtractor

UP-TO-DATE

:CordovaLib:processDebugManifest

UP-TO-DATE

:CordovaLib:processDebugResources

UP-TO-DATE

:CordovaLib:generateDebugSources

UP-TO-DATE

:CordovaLib:javaPreCompileDebug

UP-TO-DATE

:CordovaLib:compileDebugJavaWithJavac

UP-TO-DATE

:CordovaLib:processDebugJavaRes

NO-SOURCE

:CordovaLib:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug

UP-TO-DATE

:app:preBuild

UP-TO-DATE

:app:preDebugBuild

:app:compileDebugAidl

:CordovaLib:packageDebugRenderscript

NO-SOURCE

:app:compileDebugRenderscript UP-TO-DATE
:app:checkDebugManifest UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:prepareLintJar

UP-TO-DATE

:app:generateDebugResValues

UP-TO-DATE

:app:generateDebugResources

UP-TO-DATE

:app:mergeDebugResources

:app:createDebugCompatibleScreenManifests

UP-TO-DATE

:app:processDebugManifest

:app:splitsDiscoveryTaskDebug

UP-TO-DATE

:app:processDebugResources

:app:generateDebugSources
:app:javaPreCompileDebug

:app:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:app:compileDebugNdk NO-SOURCE
:app:compileDebugSources
:CordovaLib:mergeDebugShaders UP-TO-DATE
:CordovaLib:compileDebugShaders UP-TO-DATE
:CordovaLib:generateDebugAssets UP-TO-DATE
:CordovaLib:mergeDebugAssets UP-TO-DATE
:app:mergeDebugShaders UP-TO-DATE
:app:compileDebugShaders UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets

UP-TO-DATE
:app:extractTryWithResourcesSupportJarDebug

UP-TO-DATE
:app:transformClassesWithStackFramesFixerForDebug

:app:transformClassesWithDesugarForDebug

:app:transformClassesWithDexBuilderForDebug

:app:transformDexArchiveWithExternalLibsDexMergerForDebug

FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 14s
38 actionable tasks: 11 executed, 27 up-to-date
(node:29110) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: /home/eobreque/Documents/ezequiel/virtual-v2/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 14s

cli packages: (/home/eobreque/.nvm/versions/node/v6.11.1/lib/node_modules)

@ionic/cli-utils  : 1.19.1
ionic (Ionic CLI) : 3.19.1

global packages:

cordova (Cordova CLI) : 8.0.0 

local packages:

@ionic/app-scripts : 3.1.6
Cordova Platforms  : android 7.0.0
Ionic Framework    : ionic-angular 3.9.2

System:

Android SDK Tools : 25.2.5
Node              : v6.11.1
npm               : 3.10.10 
OS                : Linux 4.4

Environment Variables:

ANDROID_HOME : /home/eobreque/android

Misc:

backend : legacy

i had the same problem today.
This worked, run in your project folder:
cordova clean

then

cordova build

62 Likes

your commands do not work :frowning:

1 Like

In my project I have facebook, google and barcodescanner (native) integrated

i was also implementing facebook integration then problem had come

solution is that (working)

  1. cordova clean android
  2. cordova build android
42 Likes

the problem continues :frowning:

➜ virtual-v2 git:(master) ✗ cordova clean android
Android Studio project detected
ANDROID_HOME=/home/eobreque/android
JAVA_HOME=/usr/lib/jvm/java-8-oracle

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed
Subproject Path: CordovaLib
Subproject Path: app

Configure project :CordovaLib
publishNonDefault is deprecated and has no effect anymore. All variants are now published.

Configure project :app
Configuration ‘compile’ in project ‘:app’ is deprecated. Use ‘implementation’ instead.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_cn1pcwr1c1efi8eowabf90t4k.run(/home/eobreque/Documents/ezequiel/virtual-v2/platforms/android/app/build.gradle:144)

BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 up-to-date
➜ virtual-v2 git:(master) ✗ cordova build android
Android Studio project detected
ANDROID_HOME=/home/eobreque/android
JAVA_HOME=/usr/lib/jvm/java-8-oracle
studio
Subproject Path: CordovaLib
Subproject Path: app
publishNonDefault is deprecated and has no effect anymore. All variants are now published.
Configuration ‘compile’ in project ‘:app’ is deprecated. Use ‘implementation’ instead.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
at build_cn1pcwr1c1efi8eowabf90t4k.run(/home/eobreque/Documents/ezequiel/virtual-v2/platforms/android/app/build.gradle:144)
:CordovaLib:preBuild UP-TO-DATE
:CordovaLib:preDebugBuild UP-TO-DATE
:CordovaLib:compileDebugAidl
:CordovaLib:compileDebugRenderscript
:CordovaLib:checkDebugManifest
:CordovaLib:generateDebugBuildConfig
:CordovaLib:prepareLintJar
:CordovaLib:generateDebugResValues
:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources
:CordovaLib:platformAttrExtractor
:CordovaLib:processDebugManifest
:CordovaLib:javaPreCompileDebug
:CordovaLib:processDebugJavaRes NO-SOURCE
:app:preBuild UP-TO-DATE
:app:preDebugBuild
:app:compileDebugAidl
:CordovaLib:packageDebugRenderscript NO-SOURCE
:app:compileDebugRenderscript
:app:checkDebugManifest
:app:generateDebugBuildConfig
:app:prepareLintJar
:app:generateDebugResValues
:app:generateDebugResources
:app:mergeDebugResources
:app:createDebugCompatibleScreenManifests
:app:processDebugManifest
:app:splitsDiscoveryTaskDebug
:app:compileDebugNdk NO-SOURCE
:CordovaLib:mergeDebugShaders
:CordovaLib:compileDebugShaders
:CordovaLib:generateDebugAssets
:CordovaLib:mergeDebugAssets
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:app:mergeDebugAssets
:app:extractTryWithResourcesSupportJarDebug
:CordovaLib:compileDebugNdk NO-SOURCE
:CordovaLib:mergeDebugJniLibFolders
:CordovaLib:transformNativeLibsWithMergeJniLibsForDebug
:CordovaLib:transformNativeLibsWithIntermediateJniLibsForDebug
:app:mergeDebugJniLibFolders
:app:processDebugJavaRes NO-SOURCE
:app:validateSigningDebug
:CordovaLib:processDebugResources
:CordovaLib:generateDebugSources
:CordovaLib:compileDebugJavaWithJavacNote: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:CordovaLib:transformClassesAndResourcesWithPrepareIntermediateJarsForDebug
:app:processDebugResources
:app:generateDebugSources
:app:javaPreCompileDebug
:app:compileDebugJavaWithJavacNote: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

:app:compileDebugSources
:app:transformClassesWithStackFramesFixerForDebug
:app:transformClassesWithDesugarForDebug
:app:transformClassesWithDexBuilderForDebug
:app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 32s
43 actionable tasks: 43 executed
(node:23166) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: /home/eobreque/Documents/ezequiel/virtual-v2/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ‘:app:transformDexArchiveWithExternalLibsDexMergerForDebug’.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 32s

My package.json

{
“name”: “virtual-2”,
“version”: “0.0.1”,
“author”: “Ionic Framework”,
“homepage”: “http://ionicframework.com/”,
“private”: true,
“scripts”: {
“clean”: “ionic-app-scripts clean”,
“build”: “ionic-app-scripts build”,
“lint”: “ionic-app-scripts lint”,
“ionic:build”: “ionic-app-scripts build”,
“ionic:serve”: “ionic-app-scripts serve”
},
“dependencies”: {
"@angular/animations": “^5.1.2”,
"@angular/common": “5.0.3”,
"@angular/compiler": “5.0.3”,
"@angular/compiler-cli": “5.0.3”,
"@angular/core": “5.0.3”,
"@angular/forms": “5.0.3”,
"@angular/http": “5.0.3”,
"@angular/platform-browser": “5.0.3”,
"@angular/platform-browser-dynamic": “5.0.3”,
"@ionic-native/barcode-scanner": “^4.5.3”,
"@ionic-native/core": “4.4.0”,
"@ionic-native/facebook": “^4.5.2”,
"@ionic-native/geolocation": “^4.5.2”,
"@ionic-native/google-plus": “^4.5.2”,
"@ionic-native/splash-screen": “4.4.0”,
"@ionic-native/status-bar": “4.4.0”,
"@ionic/pro": “1.0.16”,
"@ionic/storage": “2.1.3”,
“chilean-rut”: “^1.0.24”,
“commonjs”: “0.0.1”,
“cordova-android”: “~7.0.0”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-device”: “^1.1.7”,
“cordova-plugin-facebook4”: “^1.9.1”,
“cordova-plugin-geolocation”: “^3.0.0”,
“cordova-plugin-googleplus”: “^5.2.1”,
“cordova-plugin-ionic-webview”: “^1.1.16”,
“cordova-plugin-splashscreen”: “^4.1.0”,
“cordova-plugin-whitelist”: “^1.3.3”,
“ionic-angular”: “3.9.2”,
“ionic-plugin-keyboard”: “^2.2.1”,
“ionicons”: “3.0.0”,
“ng2-charts”: “^1.6.0”,
“ngx-qrcode2”: “0.0.5”,
“phonegap-plugin-barcodescanner”: “^7.0.2”,
“rxjs”: “5.5.2”,
“sw-toolbox”: “3.6.0”,
“zone.js”: “0.8.18”
},
“devDependencies”: {
"@ionic/app-scripts": “3.1.6”,
“typescript”: “2.4.2”
},
“description”: “An Ionic project”,
“cordova”: {
“plugins”: {
“ionic-plugin-keyboard”: {},
“cordova-plugin-whitelist”: {},
“cordova-plugin-device”: {},
“cordova-plugin-splashscreen”: {},
“cordova-plugin-ionic-webview”: {},
“cordova-plugin-geolocation”: {
“GEOLOCATION_USAGE_DESCRIPTION”: “Localizar Iglesias”
},
“cordova-plugin-facebook4”: {
“APP_ID”: “333325963746280”,
“APP_NAME”: “bishop”
},
“cordova-plugin-googleplus”: {
“REVERSED_CLIENT_ID”: “myreversedclientid”
},
“phonegap-plugin-barcodescanner”: {
“CAMERA_USAGE_DESCRIPTION”: " "
},
“cordova-plugin-compat”: {}
},
“platforms”: [
“android”
]
}
}

the problem started when I integrated this plugin phonegap-plugin-barcodescanner

okay firstly comment phonegap-plugin-barcodescanner code then
cordova clean android
cordova build android

then check what will come…

3 Likes

if I comment the plugin works fine. but I need the plugin :frowning:

apparently the problem is versions

1 Like

can you share your build.gradle details here?

/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.

*/

apply plugin: ‘com.android.application’

buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url “https://maven.google.com
}
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.0'
}

}

// Allow plugins to declare Maven dependencies via build-extras.gradle.
allprojects {
repositories {
mavenCentral();
jcenter()
}
}

task wrapper(type: Wrapper) {
gradleVersion = ‘4.1.0’
}

// Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
// Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
ext {
apply from: ‘…/CordovaLib/cordova.gradle’
// The value for android.compileSdkVersion.
if (!project.hasProperty(‘cdvCompileSdkVersion’)) {
cdvCompileSdkVersion = null;
}
// The value for android.buildToolsVersion.
if (!project.hasProperty(‘cdvBuildToolsVersion’)) {
cdvBuildToolsVersion = null;
}
// Sets the versionCode to the given value.
if (!project.hasProperty(‘cdvVersionCode’)) {
cdvVersionCode = null
}
// Sets the minSdkVersion to the given value.
if (!project.hasProperty(‘cdvMinSdkVersion’)) {
cdvMinSdkVersion = null
}
// Whether to build architecture-specific APKs.
if (!project.hasProperty(‘cdvBuildMultipleApks’)) {
cdvBuildMultipleApks = null
}
// Whether to append a 0 “abi digit” to versionCode when only a single APK is build
if (!project.hasProperty(‘cdvVersionCodeForceAbiDigit’)) {
cdvVersionCodeForceAbiDigit = null
}
// .properties files to use for release signing.
if (!project.hasProperty(‘cdvReleaseSigningPropertiesFile’)) {
cdvReleaseSigningPropertiesFile = null
}
// .properties files to use for debug signing.
if (!project.hasProperty(‘cdvDebugSigningPropertiesFile’)) {
cdvDebugSigningPropertiesFile = null
}
// Set by build.js script.
if (!project.hasProperty(‘cdvBuildArch’)) {
cdvBuildArch = null
}

// Plugin gradle extensions can append to this to have code run at the end.
cdvPluginPostBuildExtras = []

}

// PLUGIN GRADLE EXTENSIONS START
apply from: “…/phonegap-plugin-barcodescanner/blessapp175160-barcodescanner.gradle”
// PLUGIN GRADLE EXTENSIONS END

def hasBuildExtras = file(‘build-extras.gradle’).exists()
if (hasBuildExtras) {
apply from: ‘build-extras.gradle’
}

// Set property defaults after extension .gradle files.
if (ext.cdvCompileSdkVersion == null) {
ext.cdvCompileSdkVersion = privateHelpers.getProjectTarget()
//ext.cdvCompileSdkVersion = project.ext.defaultCompileSdkVersion
}
if (ext.cdvBuildToolsVersion == null) {
ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
//ext.cdvBuildToolsVersion = project.ext.defaultBuildToolsVersion
}
if (ext.cdvDebugSigningPropertiesFile == null && file(’…/debug-signing.properties’).exists()) {
ext.cdvDebugSigningPropertiesFile = ‘…/debug-signing.properties’
}
if (ext.cdvReleaseSigningPropertiesFile == null && file(’…/release-signing.properties’).exists()) {
ext.cdvReleaseSigningPropertiesFile = ‘…/release-signing.properties’
}

// Cast to appropriate types.
ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean();
ext.cdvVersionCodeForceAbiDigit = cdvVersionCodeForceAbiDigit == null ? false : cdvVersionCodeForceAbiDigit.toBoolean();
ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? null : defaultMinSdkVersion
ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt(’’ + cdvVersionCode)

def computeBuildTargetName(debugBuild) {
def ret = 'assemble’
if (cdvBuildMultipleApks && cdvBuildArch) {
def arch = cdvBuildArch == ‘arm’ ? ‘armv7’ : cdvBuildArch
ret += ‘’ + arch.toUpperCase().charAt(0) + arch.substring(1);
}
return ret + (debugBuild ? ‘Debug’ : ‘Release’)
}

// Make cdvBuild a task that depends on the debug/arch-sepecific task.
task cdvBuildDebug
cdvBuildDebug.dependsOn {
return computeBuildTargetName(true)
}

task cdvBuildRelease
cdvBuildRelease.dependsOn {
return computeBuildTargetName(false)
}

task cdvPrintProps << {
println(‘cdvCompileSdkVersion=’ + cdvCompileSdkVersion)
println(‘cdvBuildToolsVersion=’ + cdvBuildToolsVersion)
println(‘cdvVersionCode=’ + cdvVersionCode)
println(‘cdvVersionCodeForceAbiDigit=’ + cdvVersionCodeForceAbiDigit)
println(‘cdvMinSdkVersion=’ + cdvMinSdkVersion)
println(‘cdvBuildMultipleApks=’ + cdvBuildMultipleApks)
println(‘cdvReleaseSigningPropertiesFile=’ + cdvReleaseSigningPropertiesFile)
println(‘cdvDebugSigningPropertiesFile=’ + cdvDebugSigningPropertiesFile)
println(‘cdvBuildArch=’ + cdvBuildArch)
println(‘computedVersionCode=’ + android.defaultConfig.versionCode)
android.productFlavors.each { flavor ->
println(‘computed’ + flavor.name.capitalize() + ‘VersionCode=’ + flavor.versionCode)
}
}

android {

defaultConfig {
    versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
    applicationId privateHelpers.extractStringFromManifest("package")

    if (cdvMinSdkVersion != null) {
        minSdkVersion cdvMinSdkVersion
    }
}

lintOptions {
  abortOnError false;
}

compileSdkVersion cdvCompileSdkVersion
buildToolsVersion cdvBuildToolsVersion

//This code exists for Crosswalk and other Native APIs.
//By default, we multiply the existing version code in the Android Manifest by 10 and 
//add a number for each architecture.  If you are not using Crosswalk or SQLite, you can
//ignore this chunk of code, and your version codes will be respected.

if (Boolean.valueOf(cdvBuildMultipleApks)) {
    flavorDimensions "default"

    productFlavors {
        armeabi {
            versionCode defaultConfig.versionCode*10 + 1
            ndk {
                abiFilters = ["armeabi"]
            }
        }
        armv7 {
            versionCode defaultConfig.versionCode*10 + 2
            ndk {
                abiFilters = ["armeabi-v7a"]
            }
        }
        arm64 {
            versionCode defaultConfig.versionCode*10 + 3
            ndk {
                abiFilters = ["arm64-v8a"]
            }
        }
        x86 {
            versionCode defaultConfig.versionCode*10 + 4
            ndk {
                abiFilters = ["x86"]
            }
        }
        x86_64 {
            versionCode defaultConfig.versionCode*10 + 5
            ndk {
                abiFilters = ["x86_64"]
            }
        }
    }
} else if (Boolean.valueOf(cdvVersionCodeForceAbiDigit)) {
    // This provides compatibility to the default logic for versionCode before cordova-android 5.2.0
    defaultConfig {
        versionCode defaultConfig.versionCode*10
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

if (cdvReleaseSigningPropertiesFile) {
    signingConfigs {
        release {
            // These must be set or Gradle will complain (even if they are overridden).
            keyAlias = ""
            keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
            storeFile = null
            storePassword = "__unset"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
    addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
}
if (cdvDebugSigningPropertiesFile) {
    addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
}

}

/*

  • WARNING: Cordova Lib and platform scripts do management inside of this code here,
  • if you are adding the dependencies manually, do so outside the comments, otherwise
  • the Cordova tools will overwrite them
    */

dependencies {
implementation fileTree(dir: ‘libs’, include: ‘*.jar’)
// SUB-PROJECT DEPENDENCIES START
implementation(project(path: “:CordovaLib”))
compile "com.facebook.android:facebook-android-sdk:4.+"
compile "com.google.android.gms:play-services-auth:+"
compile “com.google.android.gms:play-services-identity:+”
// SUB-PROJECT DEPENDENCIES END
}

def promptForReleaseKeyPassword() {
if (!cdvReleaseSigningPropertiesFile) {
return;
}
if (’__unset’.equals(android.signingConfigs.release.storePassword)) {
android.signingConfigs.release.storePassword = privateHelpers.promptForPassword(‘Enter key store password: ‘)
}
if (’__unset’.equals(android.signingConfigs.release.keyPassword)) {
android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
}
}

gradle.taskGraph.whenReady { taskGraph ->
taskGraph.getAllTasks().each() { task ->
if([‘validateReleaseSigning’, ‘validateSigningRelease’, ‘validateSigningArmv7Release’, ‘validateSigningX76Release’].contains(task.name)) {
promptForReleaseKeyPassword()
}
}
}

def addSigningProps(propsFilePath, signingConfig) {
def propsFile = file(propsFilePath)
def props = new Properties()
propsFile.withReader { reader ->
props.load(reader)
}

def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
if (!storeFile.isAbsolute()) {
    storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
}
if (!storeFile.exists()) {
    throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
}
signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
signingConfig.storeFile = storeFile
signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
def storeType = props.get('storeType', props.get('key.store.type', ''))
if (!storeType) {
    def filename = storeFile.getName().toLowerCase();
    if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
        storeType = 'pkcs12'
    } else {
        storeType = signingConfig.storeType // "jks"
    }
}
signingConfig.storeType = storeType

}

for (def func : cdvPluginPostBuildExtras) {
func()
}

// This can be defined within build-extras.gradle as:
// ext.postBuildExtras = { … code here … }
if (hasProperty(‘postBuildExtras’)) {
postBuildExtras()
}

The problem originates with the bookstores of facebook and bancorde

1 Like

it solves the problem in my case! thank you!

Yes it works perfectly! Thanks :wink:

1 Like

In \platforms\android\project.properties, replace base number and ads number by “+” only
com.google.android.gms:play-services-base:+
com.google.android.gms:play-services-ads:+

2 Likes