这是我的 build.gradle ,如下所示:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'realm-android'
buildscript {
ext.kotlin_version = '1.0.0'
ext.anko_version = '0.8.2'
ext.okhttp_version = '2.4.0'
ext.butterknife_version = '7.0.1'
ext.realm_version = '0.88.0-SNAPSHOT'
repositories {
jcenter()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap/' }
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
classpath "io.realm:realm-gradle-plugin:$realm_version"
}
}
repositories {
jcenter()
maven { url 'https://dl.bintray.com/kotlin/kotlin-eap/' }
maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' }
}
kapt {
generateStubs = true
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "cn.com.xxxx.xxxxx"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dexOptions {
incremental false
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
sourceSets {
main.java.srcDirs += 'src/main/java'
}
}
//configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }
dependencies {
compile 'com.android.support:multidex:1.0.1'
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1'
compile fileTree(dir: 'libs', include: ['*.jar'])
// testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'de.hdodenhof:circleimageview:1.2.2'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile "org.jetbrains.anko:anko-sdk15:$anko_version"
compile "org.jetbrains.anko:anko-support-v4:$anko_version"
compile "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
compile "org.jetbrains.anko:anko-design:$anko_version"
compile "org.jetbrains.anko:anko-recyclerview-v7:$anko_version"
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'de.greenrobot:eventbus:2.4.0'
compile "com.squareup.okhttp:okhttp:$okhttp_version"
compile "com.squareup.okhttp:okhttp-urlconnection:$okhttp_version"
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.google.code.ksoap2-android:ksoap2-android:3.5.0'
compile("io.realm:realm-android:$realm_version"){
exclude group: 'com.android.support', module: 'multidex'
}
compile "org.jetbrains.kotlin:kotlin-reflect:${kotlin_version}"
compile 'com.github.KeepSafe:ReLinker:1.1'
compile 'com.github.jjobes:slideDateTimePicker:1.0.2'
kapt "io.realm:realm-android:$realm_version"
}
但是当我在发生错误后运行我的项目时:
Error:Gradle: Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: io/realm/annotations/Ignore.class
我尝试了this solution和StackOverflow中的一些问题,但无法解决。
答案 0 :(得分:1)
使用0.88,你不再需要自己配置Realm来与Kotlin合作。这一切都在插件内部完成。因此,您应该删除kapt "io.realm:realm-android:$realm_version
我们在这里有一个与Kotlin合作的例子:
https://github.com/realm/realm-java/blob/master/examples/kotlinExample/build.gradle
https://github.com/realm/realm-java/blob/master/examples/build.gradle