【问题标题】:Multiple dex files define Landroid/support/v4/content/res/TypedArrayUtils多个dex文件定义Landroid/support/v4/content/res/TypedArrayUtils
【发布时间】:2017-03-23 21:52:12
【问题描述】:

错误:任务 ':app:transformClassesWithDexForStagingDebug' 执行失败。

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: 多个dex文件定义Landroid/support /v4/content/res/TypedArrayUtils;

我在 SO 上看到过类似的问题,例如:Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat

但是,我有许多包含的库,所以我的依赖项输出很大,我无法确定是依赖项导致了问题。我认为问题是 com.google.firebase:firebase-messaging:10.0.1 所以我补充说:

compile ('com.google.firebase:firebase-messaging:10.0.1'){
        exclude module: 'support-v4'
    }

但这并没有解决问题。

我还在我的依赖输出中看到:

com.android.databinding:library:1.2.1
|    +--- com.android.databinding:baseLibrary:2.2.0-dev -> 2.2.2
|    \--- com.android.support:support-v4:21.0.3 -> 25.3.0 (*)

21.0.3 -> 25.3.0 (*) 究竟是什么意思?这是否意味着我的数据绑定库正在使用 21.0.3 OR 25.3.0?是否必须更新,如果是,如何更新?

也许有人可以查看我的依赖项输出并为我指明正确的方向。像这样的 Android 问题简直让我抓狂。

My dependency output

【问题讨论】:

  • 在您的依赖输出中,搜索“support-v4”。我可以看到多个模块具有不同版本的 support-v4。从所有其他模块中排除并仅包含最新的模块。
  • 执行./gradlew :app:dependencies,搜索重复的依赖导入并排除。
  • @Nizam 你到底在说哪一个?

标签: android gradle android-support-library


【解决方案1】:

这个问题已经困扰我好几次了。这一切都始于我将 com.android.support:support 库更新为:-v4:25.3.0'。 我认为我有一个解决问题的好方法:

  1. 确保您的所有组件都是最新的,例如:“Android SDK Platform 25”等。对我来说,每次打开 Android Studio 时都会有一个气球告诉我这样做,我只是点击了它:

  1. 然后我创建了一个新的 Android 项目(不要添加任何额外的文件/类 - 这只是一个外壳)

  2. 然后我将我的库定义从我的主项目的 gradle 文件(在依赖项部分)一一复制到新项目的 gradle。在我添加的每一个之后,我都尝试运行新项目。

  3. 最终,您将在新项目中遇到原始错误。对我来说就是这个图书馆:

    旧:编译 'com.android.support:recyclerview-v7:+' 新:编译'com.android.support:recyclerview-v7:25.3.0'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多