3

我正在使用 Meteor 和 Cordova 开发一个 android 应用程序。使用 Mac OS El Capitan,最新的 Meteor (1.2.1)。

我在尝试将应用程序构建到 Android 时遇到错误,我设法看到错误是因为我正在使用的 Facebook 连接插件。我正在使用这个版本的插件:

com.phonegap.plugins.facebookconnect@https://github.com/Wizcorp/phonegap-facebook-plugin/tarball/c0f8da97a1d65397ada73e958dafed3aeef2e491

我得到这个错误:

执行 Cordova 命令时出错:
在使用选项--device 为平台 Android 运行 Cordova 应用程序时:错误:命令失败:/Users/maor/dev/EDD/everydamnday/.meteor/local/cordova-build/platforms/android/cordova/run --device 注意:一些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。注意:某些输入文件使用或覆盖已弃用的 API。注意:使用 -Xlint:deprecation 重新编译以获取详细信息。笔记:一些输入文件使用未经检查或不安全的操作。注意:使用 -Xlint:unchecked 重新编译以获取详细信息。意外的顶级异常:com.android.dex.DexException:多个 dex 文件定义 Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
在 com.android.dx.merge.DexMerger.mergeDexes (DexMerger.java:164) 在 com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 在 com. android.dx.command.dexer.Main.runMonoDex(Main.java:334) 在 com.android.dx.command.dexer.Main.run(Main.java:277) 在 com.android.dx.command.dexer。 Main.main(Main.java:245) 在 com.android.dx.command.Main.main(Main.java:106)

   FAILURE: Build failed with an exception.
   * What went wrong:    Execution failed for task ':dexDebug'.

com.android.ide.common.internal.LoggedErrorException:无法运行命令:/Users/maor/Library/Android/sdk/build-tools/23.0.2/dx --dex --no-optimize --output /Users /maor/dev/EDD/everydamnday/.meteor/local/cordova-build/platforms/android/build/intermediates/dex/debug --input-list=/Users/maor/dev/EDD/everydamnday/.meteor/local /cordova-build/platforms/android/build/intermediates/tmp/dex/debug/inputList.txt 错误代码:2 输出:UNEXPECTED TOP-LEVEL EXCEPTION:com.android.dex.DexException:多个 dex 文件定义 Landroid/support/ v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl; 在 com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:579)
在 com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:535)
在 com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:517)
在 com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:164) 在 com.android.dx.merge.DexMerger.merge (DexMerger.java:188) 在 com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 在 com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 在com.android.dx.command.dexer.Main.run(Main.java:277) 在 com.android.dx.command.dexer.Main.main(Main.java:245) 在 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.
   /Users/maor/dev/EDD/everydamnday/.meteor/local/cordova-build/platforms/android/cordova/node_modules/q/q.js:126

扔 e; ^ 命令的错误代码 1:/Users/maor/dev/EDD/everydamnday/.meteor/local/cordova-build/platforms/android/gradlew 带参数:
cdvBuildDebug,-b,/Users/maor/dev/EDD/everydamnday /.meteor/local/cordova-build/platforms/android/build.gradle,-PcdvBuildArch=arm,-Dorg.gradle.daemon=true at ChildProcess.exitCallback (/tools/utils/processes.js:137:23) at ChildProcess.emit (events.js:98:17) 在 Process.ChildProcess._handle.onexit (child_process.js:820:12)

退出代码:

我什么都试过了。所有关于 android-support.v4.jar 与其他插件冲突的问题都不起作用。我试图做流星重置。我试图删除平台并再次添加它,但没有任何效果。只有当我取下 Facebook 连接插件时,它才能工作!

4

1 回答 1

0

运行时遇到同样的问题:

meteor build ...

在以下位置找到了修复:

https://github.com/Wizcorp/phonegap-facebook-plugin/issues/1234

当我在 android studie 中打开我的项目时,在 Gradle Scripts 下添加文件

build-extras.gradle 

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

我现在可以使用 Android Studio 成功构建。

于 2016-06-01T02:54:10.833 回答