多个dex文件定义了Landroid / support / v4 / content / res / TypedArrayUtils

时间:2017-03-23 06:24:44

标签: android gradle android-support-library

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

  

com.android.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:com.android.dex.DexException:多个dex文件定义Landroid /支持/ V4 /内容/ 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

1 个答案:

答案 0 :(得分:0)

这个问题现在有点儿了。这一切都是在我将com.android.support:support库更新为:-v4:25.3.0'时开始的。 我想我有办法解决这个问题:

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

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

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

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

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