首页 文章

在android平台上的cordova插件冲突

提问于
浏览
3

每当我尝试构建我的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.com上的com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) . 在com.android.dx.command.Main.main(Main.java:106)的com.android.dx.command.dexer.Main.main(Main.java:215)上运行(Main.java:246):dexArmv7Debug FAILED FAILURE:构建因异常而失败 . 出了什么问题:任务执行失败':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输出:UNEXPECTED TOP-LEVEL EXCEPTION: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下的com.android.dx.merge.DexMerger.merge(DexMerger.java:189) . dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)位于com.android.dx.com上的com.android.dx.command.dexer.Main.runMonoDex(Main.java:303) . 在com.android.dx.command.Main.main(Main.java:106)的com.android.dx.command.dexer.Main.main(Main.java:215)上运行(Main.java:246)尝试:使用--stacktrace选项运行以获取堆栈跟踪 . 使用--info或--debug选项运行以获取更多日志输出 . BUILD FAILED总时间:27.511秒/Users/sombriks/git/g4l-taxi/platforms/android/cordova/node_modules/q/q.js:126 throw e; ^命令的错误代码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 = true 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)在Process.ChildProcess._handle.onexit(child_process)的maybeClose(child_process.js:756:16)的ChildProcess.emit(events.js:98:17) .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,但到目前为止它没有任何效果 .

如果有人以前遇到过这样的问题,请帮忙 .

提前致谢 .

EDIT:

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

2 回答

  • 3

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

    删除此插件,它已被弃用,不再需要 .

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

  • 0

    好吧,如果有其他人遇到这样的问题,这是我的解决方案:

    • 备份 www 文件夹

    • 更新npm

    • sudo yum update npm

    • 更新cordova

    • sudo npm -g install cordova

    • 创建一个全新的项目

    • codrova创建MyFolder my.namespace "My Title"

    • 带回 www 文件夹

    • 添加所有插件:

    • cordova插件添加cordova-plugin-console

    • cordova插件添加cordova-plugin-crosswalk-webview

    • 科尔多瓦 - 插件,admobpro

    • 添加您的平台:

    • cordova平台添加android

    • cordova平台添加ios

    问题已经消失,似乎与这个项目的时代有关 . 我遇到过一个或两个cordova versios更新,没有说明每个插件有多少更新 .

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

相关问题