android平台上的cordova插件冲突

时间:2015-07-08 23:37:12

标签: android cordova cordova-plugins

每当我尝试构建我的cordova应用程序时,我都会收到此错误:

  

:mergeArmv7DebugAssets UP-TO-DATE   :createXwalkCommandLineFileArmv7Debug   :generateArmv7DebugResValues UP-TO-DATE   :generateArmv7DebugResources UP-TO-DATE   :mergeArmv7DebugResources   :processArmv7DebugManifest   :processArmv7DebugResources   :generateArmv7DebugSources   :compileArmv7DebugJava   :preDexArmv7Debug   :dexArmv7Debug

     

意外的顶级例外情况:   com.android.dex.DexException:多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode;       在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)       在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)       在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)       在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)       在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)       在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)       在com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)       在com.android.dx.command.dexer.Main.run(Main.java:246)       在com.android.dx.command.dexer.Main.main(Main.java:215)       在com.android.dx.command.Main.main(Main.java:106)

     

:dexArmv7Debug FAILED

     

失败:构建因异常而失败。

     
      
  • 出了什么问题:   任务':dexArmv7Debug'的执行失败。   com.android.ide.common.internal.LoggedErrorException:无法运行命令:   /Users/sombriks/Library/Android/sdk/build-tools/22.0.1/dx --dex --no-optimize --output / Users / sombriks / git / g4l-taxi / platforms / android / build / intermediates / dex / armv7 / debug --input-list = / Users / sombriks / git / g4l-taxi / platforms / android / build / intermediates / tmp / dex / armv7 / debug / inputList.txt   错误代码:   2   输出:

         

    意外的顶级例外情况:   com.android.dex.DexException:多个dex文件定义Lcom / google / ads / AdRequest $ ErrorCode;       在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)       在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)       在com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)       在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)       在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)       在com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)       在com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)       在com.android.dx.command.dexer.Main.run(Main.java:246)       在com.android.dx.command.dexer.Main.main(Main.java:215)       在com.android.dx.command.Main.main(Main.java:106)

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

  •   
     

建立失败

     

总时间:27.511秒

     

/Users/sombriks/git/g4l-taxi/platforms/android/cordova/node_modules/q/q.js:126                       扔掉;                             ^

     

命令的错误代码1:/ Users / sombriks / git / g4l-taxi / platforms / android / gradlew with args:cdvBuildDebug,-b,/ Users / sombriks / git / g4l-taxi / platforms / android / build。 gradle这个,-Dorg.gradle.daemon =真   ERROR构建其中一个平台:错误:/ Users / sombriks / git / g4l-taxi / platforms / android / cordova / build:命令失败,退出代码为8   您可能没有构建此项目所需的环境或操作系统   错误:/ Users / sombriks / git / g4l-taxi / platforms / android / cordova / build:命令失败,退出代码为8

     

在ChildProcess.whenDone上(/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:134:23)      在ChildProcess.emit(events.js:98:17)

     

在maybeClose(child_process.js:756:16)

     

在Process.ChildProcess._handle.onexit(child_process.js:823:5)

     

[sombriks @ eiko g4l-taxi] $

这是我的插件列表:

  

[sombriks @ eiko g4l-taxi] $ cordova插件列表

     

cordova-plugin-admobpro 2.8.1“AdMob Plugin Pro”

     

cordova-plugin-crosswalk-webview 1.2.0“Crosswalk WebView Engine”

     

cordova-plugin-extension 1.1.4“Cordova插件扩展”

     

cordova-plugin-googleplayservices 19.0.1“适用于Android的Google Play服务”

     

cordova-plugin-whitelist 1.0.0“Whitelist”

     

org.apache.cordova.console 0.2.13“控制台”

只有android构建显示此问题,ios构建编译并运行。

某些other posts建议修改我的build.gradle,但到目前为止它没有效果。

如果有人此前遇到过此类问题,请提供帮助。

提前致谢。

修改

创建一个新项目并只添加crosswalk plugin给我一个工作项目,包括android和ios。我会添加更多插件,看看会发生什么。

2 个答案:

答案 0 :(得分:3)

cordova-plugin-googleplayservices 19.0.1"适用于Android的Google Play服务"

删除此插件,已弃用,不再需要。

请参阅常见问题解答3:https://github.com/floatinghotpot/cordova-admob-pro/wiki/Difference-of-Plugin-IDs

答案 1 :(得分:0)

好的,如果有其他人遇到这类问题,请按照以下方式解决问题:

  1. 备份 www 文件夹
  2. 更新npm
    • sudo yum update npm
  3. 更新cordova
    • sudo npm -g install cordova
  4. 创建一个全新的项目
    • codrova创建MyFolder my.namespace"我的标题"
  5. 带回 www 文件夹
  6. 添加所有插件:
    • cordova插件添加cordova-plugin-console
    • cordova插件添加cordova-plugin-crosswalk-webview
    • 科尔多瓦-插件-admobpro
  7. 添加您的平台:
    • cordova平台添加android
    • cordova平台添加ios
  8. 问题已经消失,似乎与这个项目的时代有关。我已经面对一两个cordova versios更新,没有说明每个插件有多少更新。

    最后,保持环境更新,清洁可以解决它。