【问题标题】:Cordova Error on Build Only for Android: com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;仅适用于 Android 的构建时出现 Cordova 错误:com.android.dex.DexException:多个 dex 文件定义 Landroid/support/annotation/AnimRes;
【发布时间】:2015-12-07 07:02:22
【问题描述】:

我关注了另外三个关于这个问题的资源,但没有一个有用。

我的 iOS 构建完美,但无论我尝试更改什么,android 都会出现此错误。

  • 已经尝试创建一个新项目,但 android 仍然存在同样的问题。
  • 已安装所有 Android SDK

以下是错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':dexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
  	/Users/sakai/Library/Android/sdk/build-tools/23.0.1/dx --dex --no-optimize --output /Users/sakai/mobile/cupomap/platforms/android/build/intermediates/dex/debug --input-list=/Users/sakai/mobile/cupomap/platforms/android/build/intermediates/tmp/dex/debug/inputList.txt
  Error Code:
  	2
  Output:
  	
  	UNEXPECTED TOP-LEVEL EXCEPTION:
  	com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;
  		at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
  		at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
  		at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
  		at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
  		at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
  		at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
  		at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
  		at com.android.dx.command.dexer.Main.run(Main.java:277)
  		at com.android.dx.command.dexer.Main.main(Main.java:245)
  		at com.android.dx.command.Main.main(Main.java:106)
  	


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

BUILD FAILED

Total time: 5.343 secs

/Users/sakai/mobile/cupomap/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: /Users/sakai/mobile/cupomap/platforms/android/gradlew with args: cdvBuildDebug,-b,/Users/sakai/mobile/cupomap/platforms/android/build.gradle,-Dorg.gradle.daemon=true
ERROR building one of the platforms: Error: /Users/sakai/mobile/cupomap/platforms/android/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Error: /Users/sakai/mobile/cupomap/platforms/android/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:756:16)
    at Process.ChildProcess._handle.onexit (child_process.js:823:5)

很多资源说它主要是具有不同版本的重复支持文件。所以这里是我的插件列表

com.googlemaps.ios 1.9.2 "Google Map iOS SDK for Cordova"
cordova-plugin-console 1.0.1 "Console"
cordova-plugin-device 1.0.1 "Device"
cordova-plugin-device-motion 1.1.1 "Device Motion"
cordova-plugin-device-orientation 1.0.1 "Device Orientation"
cordova-plugin-dialogs 1.1.1 "Notification"
cordova-plugin-geolocation 1.0.1 "Geolocation"
cordova-plugin-splashscreen 2.1.0 "Splashscreen"
cordova-plugin-statusbar 1.0.1 "StatusBar"
cordova-plugin-whitelist 1.0.0 "Whitelist"
phonegap-plugin-push 1.2.2 "PushPlugin"
plugin.google.maps 1.2.9 "phonegap-googlemaps-plugin"
plugin.http.request 1.0.4 "phonegap-http-request"

我已经尝试解决这个问题将近一天了。

感谢任何类型的帮助

【问题讨论】:

    标签: android cordova ionic


    【解决方案1】:

    遇到了同样的问题,将以下几行添加到位于platforms/android 的 build.gradle 文件中为我做了。

    configurations {
       all*.exclude group: 'com.android.support', module: 'support-v4'
    }
    

    我在行后复制了它:

    apply plugin: 'android'
    

    希望这会有所帮助。

    【讨论】:

    • 完美@Henkie14 非常感谢你
    【解决方案2】:

    这几乎肯定是因为插件冲突。我解决它的方法(我希望你坐得舒服)是删除每个插件,然后一个一个地添加它们并尝试构建。据我所知,这是诊断这些问题的唯一真正方法。

    通常它依赖于某种 ​​Google 库(播放服务或位置),所以我认为最有可能的罪魁祸首是位置或推送通知中涉及的插件。

    【讨论】:

      【解决方案3】:

      这对我有用:

      只需删除platforms/android 中的“build”文件夹,然后运行cordova build android。对我来说它的工作

      【讨论】:

        【解决方案4】:

        唯一对我有用的是更新 gradle。然后再次添加平台和插件。 https://stackoverflow.com/a/58754374/9909941

        【讨论】:

          猜你喜欢
          • 2015-12-06
          • 1970-01-01
          • 2015-06-30
          • 2015-08-26
          • 1970-01-01
          • 1970-01-01
          • 2016-04-23
          • 2023-04-11
          • 1970-01-01
          相关资源
          最近更新 更多