Android 多个dex文件定义库中的文件

Android 多个dex文件定义库中的文件,android,gradle,Android,Gradle,嘿,我一直在出错 意外的顶级异常: com.android.dex.DexException:多个dex文件定义Lcom/hannesdorfmann/httpkit/DefaultHttpKit$1 我三次检查了是否有重复的依赖项,但没有发现任何东西 我的依赖项如下所示: +--支持:gridlayout-v7:19.0.1 |\--com.android.support:support-v4:19.0.1 +--support:support-v4:19.0.1 +--android:and

嘿,我一直在出错

意外的顶级异常: com.android.dex.DexException:多个dex文件定义Lcom/hannesdorfmann/httpkit/DefaultHttpKit$1

我三次检查了是否有重复的依赖项,但没有发现任何东西

我的依赖项如下所示:

+--支持:gridlayout-v7:19.0.1 |\--com.android.support:support-v4:19.0.1 +--support:support-v4:19.0.1 +--android:android地图utils:0.2+->0.2.1 |\--com.google.android.gms:play services:3.1+->4.0.30 |\--com.android.support:support-v4:13.0.0->19.0.1 +--com.google.android.gms:play services:4.0.30* +--com.hannesdorfmann:httpkit kicker:1.0.10-SNAPSHOT |\--com.hannesdorfmann:httpkit:1.0.10-SNAPSHOT |+--com.jakewharton:disklrucache:2.0.2 |+--com.fasterxml.jackson.core:jackson数据绑定:2.2.0 ||+--com.fasterxml.jackson.core:jackson注释:2.2.0 || \--com.fasterxml.jackson.core:jackson-core:2.2.0 |\--org.simpleframework:simplexml:2.7 +--com.jakewharton:butterknife:4.0.1 \--com.actionbarsherlock:actionbarsherlock:4.4.0

我觉得这很好

build.gradle如下所示:

apply plugin: 'android'

android {
    compileSdkVersion "Google Inc.:Google APIs:19"
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.google.maps.android:android-maps-utils:0.2+'
    compile 'com.google.android.gms:play-services:4.0.30'
    compile 'com.hannesdorfmann:httpkit-kicker:1.0.12-SNAPSHOT'
    compile 'com.jakewharton:butterknife:4.0.1'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
parent build.gradle只添加了我们的maven存储库,没有其他内容

错误发生在库httpkit中

谢谢你的帮助

尝试:

构建->清洁项目 文件->使缓存无效/重新启动 删除生成文件夹 如果有多个类但没有 从通过maven构建的httpkit kicker中提取构建的aar,但未找到多个类
我认为这是工具最新版本中的一个bug/混乱。线索如下:

|    \--- com.android.support:support-v4:19.0.1

换句话说,android支持库的多个版本正在加载,这会混淆工具链

尽量使这些一致。使用自动版本检测可能是最好的:

compile 'com.android.support:support-v4:+'

您使用的是哪个版本的gradle/Android Studio?

您太频繁地使用JAR,或者来自不同的来源。请检查您的模块设置。当然不是-我的库文件夹中没有jar,您可以看到其中的依赖项我相信您有多个模块?如果没有,请尝试删除gen文件夹并重新生成。有时为我解决了这个问题。您在顶部的依赖项列表中看到多个模块?使用android studio-所以我没有gen文件夹-尝试构建->清理项目,文件->使缓存无效/重新启动并删除构建文件夹你能看看这个类来自哪个库吗?你能确保它不同时出现在com.hannesdorfmann:httpkitcher和com.hannesdorfmann:httpkitcher中吗?事实上,不。这意味着它在图形中检测到同一个库两次,并且使用了最新的库,但这并不意味着你将实际使用它两次。
compile 'com.android.support:support-v4:+'