Cordova - 多个dex文件定义了(注释)

5

我正在使用Ionic进行项目开发。在安装Facebook Plugin后,我无法再为Android构建项目了!

命令:

ionic build android

给我这个错误信息

UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/annotation/AnimRes;

我正在阅读许多关于此错误的教程/答案,似乎与使用Facebook插件和推送通知插件有关。
我尝试了很多不同的解决方案两天了,但都没有成功:(
这里是一些关于我的配置的信息:
plugin com.phonegap.plugins.PushPlugin version 2.5.0
plugin com.phonegap.plugins.facebookconnect version 0.11.0 (installed with the local repository, as indicated on github)
cordova version 5.0
ionic version 1.6.3

看起来这个问题与多次加载“support-annotations”库有关。但我真的不知道这是如何可能的,也不知道在哪里可以检查它。
你能帮帮我吗?你有任何想法如何使其正常工作吗? 有没有ionic/cordova配置文件可以检查依赖项?
非常感谢您的帮助。
5个回答

5
由于在ionic / cordova项目中使用了多个支持jar文件,因此会出现多个dex文件错误。
您需要更改platforms / android下的build.gradle文件。
找到以下行:
apply plugin:'com.android.application'

在添加下面这几行代码之后:
configurations {
   all*.exclude group: 'com.android.support', module: 'support-v4'
} 

1
运行得非常好!我的项目结合了cordova-plugin-background-push和cordova-plugin-x-socialsharing,导致出现了“Multiple dex files define”错误。感谢@jagadeesh。 - Peter.Wang

2

我在我的应用程序中解决了相同的问题,问题是

 com.android.support:support-v4:+

/platforms/android/phonegap-facebook-plugin/Myapp-FacebookLib/libs中存在com.android.support:support-v4:+文件。

如果只想使用Facebook和Push Notification插件,则可以在project.properties文件中注释掉该行

#cordova.system.library.1=com.android.support:support-v4:+

解决此问题的最佳方式

1 First delete the android-support-v4.jar from /platforms/android/phonegap-facebook-plugin/Myapp-FacebookLib/libs

2 second step create a file name build-extras.gradle in /platforms/android/phonegap-facebook-plugin/Myapp-FacebookLib/

并输入文件类型

dependencies {
compile "com.android.support:support-v4:+" }

@Anurag Pandey,我也在这方面遇到了困难,但不是在Facebook上,而是在日历上。这是我的问题,请帮帮我。http://stackoverflow.com/questions/37538143/ionic-build-android-command-fails-with-an-exception-after-trying-to-add-ngcordov/37539362#37539362 - Mohan Gopi

0
将此添加到project.properties中将解决所有V4错误实例。
cordova.system.library.7=com.android.support:appcompat-v7:27.1.0

0

0

我们在使用Google Analytics插件和One Signal插件时遇到了同样的问题,最后是通过以不同的顺序安装插件解决的;

  1. 首先安装Google Analytics
  2. 然后再安装One Signal插件,如果你反过来安装,就会出现错误。

这是我们的配置:

  • Cordova CLI版本:7.0.1
  • Ionic框架版本:3.3.0
  • Ionic CLI版本:2.2.1
  • Ionic App Lib版本:2.2.0

干杯!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接