我正在使用带有 gradle 0.5 的 android studio 0.2.3 并将 ormlite 依赖项添加到build.gradle
文件中,如下所示:
compile 'com.j256.ormlite:ormlite-android:4.9'
Gradle 下载了两个 jar 文件:ormlite-android.jar
和ormlite-core.jar
. 问题是,jar 文件包含同名的类。所以我得到以下众所周知的异常:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/j256/ormlite/dao/BaseDaoImpl$1;
对于 maven存在相同问题的其他一些解决方案,建议排除ormlite-core.jar
. 如果所有类ormlite-core.jar
都包含在其中,这应该可以工作ormlite-android.jar
- 我没有检查这个顺便说一句。在那种情况下,我不明白为什么 ormlite-core 在这个 ormlite android 依赖包中......我明确地添加了 ormlite-android,正如您在上面的代码片段中看到的那样。
但是如何在 gradle 中排除 ormlite-core.jar。我发现的一切都是针对 gradle 1.6,但 android studio 使用 gradle 0.5 - 或者这只是 android gradle 包装器的版本?
。:编辑:。为了使依赖关系更清晰,我添加了我的build.gradle
文件:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile 'com.android.support:appcompat-v7:18.0.+'
compile 'com.google.android.gms:play-services:3.1.+'
compile 'com.j256.ormlite:ormlite-android:4.9'
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
}
为什么我认为两个 ormlite 库中有相同的类?==> 见截图。打开的包裹不一样吗?就连源头也是。我发现的唯一不同的类SqliteAndroidDatabaseType
是com.j256.ormlite.android
包中的类。