2014-03-19 32 views
0

定义文件嘿一直保留收到错误多DEX文件从库

UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/hannesdorfmann/httpkit/DefaultHttpKit$1

如果我有重复的依赖关系,但我没有找到任何我三重检查...

我的依赖关系是这样的:

+--- com.android.support:gridlayout-v7:19.0.1 | \--- com.android.support:support-v4:19.0.1 +--- com.android.support:support-v4:19.0.1 +--- com.google.maps.android:android-maps-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-databind:2.2.0 | | +--- com.fasterxml.jackson.core:jackson-annotations:2.2.0 | | \--- com.fasterxml.jackson.core:jackson-core:2.2.0 | \--- org.simpleframework:simple-xml: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:[email protected]' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

父母的build.gradle只有我们的Maven仓库添加 - 没有别的。

错误发生在库“httpkit”中。

感谢任何帮助。

尝试:

  • 建设 - >清理项目
  • 文件 - >无效高速缓存/重启
  • 删除build文件夹
  • 寻找到的依赖关系,如果有多个类,但没有
  • 通过maven构建的httpkit-kicker提取出构建的aar,但未找到多个类
+0

您经常包含JAR或来自不同来源的JAR。检查你的模块的设置。 – shkschneider

+0

definitly不 - 我的库文件夹中没有jar,你可以看到那里的依赖关系 –

+0

我相信你有多个模块?如果没有,尝试删除gen文件夹并重建。有时解决了我的问题。 – shkschneider

回答

0

我认为这是最新版本的工具中的错误/混淆。线索是在这里:

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

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

换句话说,被加载Android的支持库的多个版本,而且混淆工具链。

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

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

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

+0

其实,没有。这意味着它在图中检测到相同的库两次,它使用最新的,但这并不意味着你会实际使用它两次。 –

相关问题