【问题标题】:How to fix unable merge with dex in ionic?如何修复无法与离子中的dex合并?
【发布时间】:2019-06-19 06:24:56
【问题描述】:

我在进行 android build 时遇到问题。

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

任务 :CordovaLib:compileDebugShaders UP-TO-DATE 任务:CordovaLib:generateDebugAssets UP-TO-DATE 任务:CordovaLib:packageDebugAssets UP-TO-DATE 任务:app:mergeDebugAssets 任务:app:validateSigningDebug UP-TO-DATE 任务:app:signingConfigWriterDebug UP-TO-DATE 任务:app:transformClassesWithDexBuilderForDebug UP-TO-DATE

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

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

  • 出了什么问题: 任务 ':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

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

  • 出了什么问题: 任务 ':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 平台

【问题讨论】:

    标签: android ionic-framework build ionic3


    【解决方案1】:

    为使用 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 并检查结果

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 我的项目中没有使用cordova-plugin-androidx
      • @Mohanraj 我认为如果您添加此插件将解决您的问题,在我的情况下它会解决所有版本冲突和构建错误
      【解决方案3】:

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

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

      附上上述解决方案的屏幕截图,以便更容易理解:

      我的项目名称是app

      在我的例子中,是 FCM 使用了 androidx 并导致了这个问题。希望这也能帮助某人解决他们的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-09
        • 2018-05-05
        • 2018-06-06
        • 2018-11-10
        • 1970-01-01
        • 2018-02-26
        • 1970-01-01
        相关资源
        最近更新 更多