Search code examples
ionic4

How to solve Program type already present: com.google.zxing.BarcodeFormat in ionic 4


I am using ionic 4. When my project have facebook plugin and BarcodeScanner plugin and type ionic cordova run android, it will come out this error:

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 unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Program type already present: com.google.zxing.BarcodeFormat

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
  Program type already present: com.google.zxing.BarcodeFormat
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

I download both plugin using these command:

ionic cordova plugin add phonegap-plugin-barcodescanner
npm install @ionic-native/barcode-scanner

ionic cordova plugin add cordova-plugin-facebook4 --variable APP_ID="app_id" --variable APP_NAME="app_name"
npm install --save @ionic-native/facebook

Solution

  • After weeks of searching, the following steps help me resolve the issue like a charm:

    1.Remove android platform.

    2.Install cordova-plugin-facebook4

    3.Create build.gradle in /plugins/cordova-plugin-facebook4/

    4.Copy

    dependencies { compile("com.facebook.android:facebook-android-sdk:4.37.0") { exclude group: 'com.google.zxing' } }
    

    to ../plugins/cordova-plugin-facebook4/build.gradle

    5.Edit ../plugins/cordova-plugin-facebook4/plugins.xml change

    <framework src="com.facebook.android:facebook-android-sdk:$FACEBOOK_ANDROID_SDK_VERSION"/>
    

    to

    <framework src="build.gradle" custom="true" type="gradleReference"/>
    

    6.Add android platform and build