cyb*_*gen 5 android exception gradle ormlite android-studio
我正在使用带有gradle 0.5的android studio 0.2.3并将ormlite依赖项添加到build.gradle
文件中,如下所示:
compile 'com.j256.ormlite:ormlite-android:4.9'
Run Code Online (Sandbox Code Playgroud)
Gradle下载了两个jar文件:ormlite-android.jar
和ormlite-core.jar
.问题是,jar文件包含同名的类.所以我得到以下众所周知的异常:
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Lcom/j256/ormlite/dao/BaseDaoImpl$1;
Run Code Online (Sandbox Code Playgroud)
存在与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
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我认为两个ormlite库中有相同的类?==>查看截图.打开的包装不一样吗?即使是来源也是.我发现的唯一不同的类SqliteAndroidDatabaseType
是com.j256.ormlite.android
包和那些.
Gre*_*reg 13
您正在使用的ormlite-android jar绝对是错误的.我的猜测是有人用ormlite-core导出错误地构建它,这就是你得到合并冲突的原因.如果你查看ormlite-android的源代码,它不应该包含大多数这些包/类.
我不确定ormlite-android版本是如何工作的,但它看起来像4.46是实际的最新版本(更新于2013年7月29日),而不是4.9(更新于2011年1月26日).我推荐使用4.46代替(这对我有用):
'com.j256.ormlite:ormlite-android:4.46'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5351 次 |
最近记录: |