Android 多个dex文件定义库中的文件
嘿,我一直在出错 意外的顶级异常: 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如下所示: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
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:+'