如何修复离子中无法与dex合并?

时间:2019-06-19 06:24:56

标签: android ionic-framework build ionic3

在进行android构建时遇到问题。

任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败

  

任务:CordovaLib:compileDebugShaders截止日期   任务:CordovaLib:generateDebugAssets截止日期   任务:CordovaLib:packageDebugAssets截止日期   任务:app:mergeDebugAssets   任务:app:validateSigningDebug截止日期   任务:app:signingConfigWriterDebug截止日期   任务:app:transformClassesWithDexBuilderForDebug截止日期

     

任务:app:transformDexArchiveWithExternalLibsDexMergerForDebug失败   D8:程序类型已经存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

失败:构建失败,并出现异常。

  • 出了什么问题: 任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。

      

    com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错:   在https://developer.android.com/studio/build/dependencies#duplicate_classes了解如何解决该问题。   程序类型已经存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org

  • 获得更多帮助

22秒内失败 35个可执行任务:已执行3个,最新32个 / Users / panmoh / Documents / mobile-app / platforms / android / gradlew:命令失败,退出代码为1错误输出: D8:程序类型已经存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

失败:构建失败,并出现异常。

  • 出了什么问题: 任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败。

      

    com.android.builder.dexing.DexArchiveMergerException:合并dex归档文件时出错:   在https://developer.android.com/studio/build/dependencies#duplicate_classes了解如何解决该问题。   程序类型已经存在:android.support.v4.os.ResultReceiver $ MyResultReceiver

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的见解。

  • https://help.gradle.org

  • 获得更多帮助

22秒内失败 [ERROR]运行子进程cordova时发生错误。

    cordova build android exited with exit code 1.

    Re-running this command with the --verbose flag may provide more information.

注意:我尝试了cordova clean android,并删除并添加了android platfoem

3 个答案:

答案 0 :(得分:4)

要为使用Phonegap / Cordova的用户解决此问题

  • 安装“ cordova-plugin-androidx”插件

    cordova plugin add cordova-plugin-androidx

  • 安装“ cordova-plugin-androidx-adapter”插件

    cordova plugin add cordova-plugin-androidx-adapter

  • 将这些行添加到gradle.properties中:

    android.useAndroidX=true android.enableJetifier=true

之后,进行构建:cordova -d build android并检查结果

答案 1 :(得分:0)

解决方案如下:确保以下内容:

  • 将com.android.tools.build:gradle升级到v3.2.1或更高版本。
  • 将compileSdkVersion升级到28或更高版本。 。更新您的应用以使用
  • Jetpack(AndroidX);按照迁移到AndroidX中的说明进行操作。

对于Cordova / Ionic项目,只需添加以下插件:

https://github.com/dpa99c/cordova-plugin-androidx https://github.com/dpa99c/cordova-plugin-androidx-adapter 这些插件将修复构建错误。一切都会正常:)..

答案 2 :(得分:0)

这里接受的解决方案是真正的解决方案。我坚持了一个星期,直到上个周末,我决定不管发生什么都会找到解决方案。

All credit goes to this person named (ProdoElmit) who answered it here.

为上述解决方案附加屏幕截图,以使其易于遵循: gradlew.bat tasks --all

gradlew.bat yourproject:dependencies在这里,我的项目名称是 app

就我而言,是FCM使用androidx并导致了此问题。希望这也会帮助某人解决他们的问题。 enter image description here