【问题标题】:Cordova - Multiple dex files define (annotation)Cordova - 多个 dex 文件定义(注释)
【发布时间】:2015-07-30 15:00:20
【问题描述】:

我正在使用 ionic 进行一个项目。安装 Facebook Plugin 后,我无法再为 android 构建项目了!

命令

ionic build android

给我这个错误信息

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

我正在阅读很多关于此错误的教程/答案,它似乎与使用带有 Push Notification Plugin 的 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 配置文件可以检查依赖关系?

非常感谢。

【问题讨论】:

    标签: android cordova ionic


    【解决方案1】:

    由于在ionic / cordova项目中使用了多个支持jar文件,引发了多个dex文件错误

    需要修改platforms/android下的build.gradle

    找到下面一行

    apply plugin:'com.android.application'
    

    在下面添加这些行之后

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

    【讨论】:

    • 像魅力一样工作!我的项目结合了 cordova-plugin-background-push 和 cordova-plugin-x-socialsharing 给多个 dex 文件定义错误。谢谢@jagadeesh
    【解决方案2】:

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

     com.android.support:support-v4:+
    

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

    如果您只想使用 facebook 和推送通知插件,那么只需 在 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:+" }
    

    【讨论】:

    【解决方案3】:

    Push- 和 Facebook 插件因使用不同版本的 android 支持库而发生冲突。

    查看我对这个问题的回答:Android Studio cordova Push plugin

    【讨论】:

      【解决方案4】:

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

      1. 首先安装谷歌分析
      2. 然后是 One Signal 插件,如果您以相反的顺序安装,则会出现该错误。

      这是我们的配置:

      • 科尔多瓦 CLI:7.0.1
      • Ionic 框架版本:3.3.0
      • Ionic CLI 版本:2.2.1
      • Ionic 应用程序库版本:2.2.0

      干杯!

      【讨论】:

        【解决方案5】:

        将此添加到 project.properties 将解决所有 V4 错误实例。

        cordova.system.library.7=com.android.support:appcompat-v7:27.1.0
        

        【讨论】:

          猜你喜欢
          • 2018-03-15
          • 1970-01-01
          • 1970-01-01
          • 2015-03-24
          • 1970-01-01
          • 1970-01-01
          • 2014-03-14
          • 2023-03-03
          相关资源
          最近更新 更多