- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我们有现有的 Java Android 代码。我们想轻松地慢慢开始迁移到 Kotlin。我们使用 Dagger 2、Butterknife 和 Realm。我们使用 Java 8 编译器(但我们的 targetCompatibility
和 sourceCompatibility
是 1.7)。
构建成功,但是在尝试调试时,我们得到:
Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/jetbrains/annotations/NotNull.class
有没有办法解决 Gradle 中的重复条目(可能使用 packagingOptions
或 resolutionStrategy
?因为它是来自插件的重复...?)?
build project
没有任何错误,只有 transformClassesWithJarMergingForDebug
失败!这是应用程序的 gradle:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'realm-android'
kapt { generateStubs = true }
android {
signingConfigs {
config {
keyAlias 'MyAndroidKey'
keyPassword 'password'
storeFile file('android.jks')
storePassword 'password'
}
}
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
vectorDrawables.useSupportLibrary = true
applicationId "com.acme.app"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
//testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
testInstrumentationRunner "com.acme.app.utils.CustomAndroidJUnitRunner"
// http://stackoverflow.com/a/26515860/587467:
multiDexEnabled true
}
//dexOptions { incremental false }
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:23.3.0', 'junit:junit:4.12'
}
targetCompatibility = 1.7
sourceCompatibility = 1.7
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets { main.java.srcDirs += 'src/main/kotlin' }
}
dependencies {
// http://stackoverflow.com/a/26515860/587467:
compile 'com.android.support:multidex:1.0.1'
compile fileTree(include: ['*.jar'], dir: 'libs')
/// <Firebase> Cloud Messaging (FCM) - the Google Cloud Messaging (GCM) new version:
compile 'com.google.firebase:firebase-messaging:9.0.2'
/// </Firebase>
/// <Dagger>
//provided 'javax.annotation:jsr250-api:1.0'
//apt 'com.google.dagger:dagger-compiler:2.5'
//compile 'com.google.dagger:dagger:2.5'
//compile 'com.google.dagger:dagger-compiler:2.4'
/// </Dagger>
/// <KotlinDagger>
compile 'com.google.dagger:dagger:2.5'
kapt 'com.google.dagger:dagger-compiler:2.5'
kaptTest 'com.google.dagger:dagger-compiler:2.5'
kaptAndroidTest 'com.google.dagger:dagger-compiler:2.5'
//provided 'org.glassfish:javax.annotation:10.0-b28'
/// </KotlinDagger>
/// <JSON>
//testCompile 'javax.json:javax.json-api:1.0'
testCompile 'org.glassfish:javax.json:1.0.4'
// https://github.com/FasterXML/jackson-docs/wiki/Using-Jackson2-with-Maven
// http://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/
//testCompile 'com.fasterxml.jackson.core:jackson-core:2.6.3'
testCompile 'com.fasterxml.jackson.core:jackson-databind:2.7.4'
/// </JSON>
//apt 'com.jakewharton:butterknife-compiler:8.0.1'
kapt 'com.jakewharton:butterknife-compiler:8.0.1'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'net.java.dev.jna:jna-platform:4.2.2'
// <InstrumentedTests>
// <MutualExclusive>
// <Or>
//androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
// </Or>
// <Or>
// androidTestCompile 'com.android.support:support-annotations:23.0.0'
androidTestCompile 'com.android.support.test:runner:0.4'
//androidTestCompile 'com.android.support.test:rules:0.4'
// <Espresso>
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
// </Espresso>
//androidTestCompile "org.robolectric:robolectric:3.0"
// </Or>
// </MutualExclusive>
// </InstrumentedTests>
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v13:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.jakewharton:butterknife:8.0.1'
compile 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'
compile 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.android.support:cardview-v7:23.3.0'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'joda-time:joda-time:2.9.4'
//compile 'io.reactivex:rxjava:1.1.6'
compile 'io.reactivex:rxjava-async-util:0.21.0'
//<Floating Buttons>
compile 'com.github.clans:fab:1.6.4'
//</Floating Buttons>
compile 'com.facebook.fresco:fresco:0.11.0'
compile 'org.jetbrains:annotations-java5:15.0'
compile 'com.fasterxml.jackson.core:jackson-databind:2.7.4'
compile 'com.google.code.gson:gson:2.4'
compile 'javax.annotation:javax.annotation-api:1.2'
compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.3"
}
// https://firebase.google.com/docs/android/setup#add_the_sdk
// Firebase Cloud Messaging (FCM) - the Google Cloud Messaging (GCM) new version:
apply plugin: 'com.google.gms.google-services'
repositories {
mavenCentral()
}
最佳答案
尝试删除:compile 'org.jetbrains:annotations-java5:15.0'
。如果它不起作用,请按照以下步骤操作:
转到您的 app/build.gradle
文件并添加:
configurations {
cleanedAnnotations
compile.exclude group: 'org.jetbrains' , module:'annotations'
}
改变
compile 'org.jetbrains:annotations-java5:15.0'
与
compile files("${buildDir}/libs/annotations-cleaned.jar") { builtBy 'cleanAnnotationsJar' }
cleanedAnnotations 'org.jetbrains:nnotations-java5:15.0'
最后补充:
task cleanAnnotationsJar(type:Jar) {
configurations.cleanedAnnotations.each { f ->
from zipTree(f)
}
archiveName = "annotations-cleaned.jar"
exclude 'org/jetbrains/annotations/NotNull.class'
exclude 'org/jetbrains/annotations/Nullable.class'
}
关于android - Kotlin,Java,multidex,Dagger 2,Butterknife 和 Realm : transformClassesWithJarMergingForDebug: duplicate entry: org/jetbrains/annotations/NotNull. 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39660420/
我正在尝试使用 Butter Knife这些天在Android Studio,但它让我遇到了一些奇怪的问题。我曾经在eclipse上尝试过 butterknife ,效果很好。我不知道我是否在 And
Butterknife 8.8.0 引入了新的处理器选项 butterknife.debuggable ( link to changelog )。默认情况下,这是真的。在我的 build.gradl
当我尝试在我的 Android 项目中使用 Butterknife 时出现以下异常: 05-20 14:08:41.221 3296-3296/com.fedorparetsky.parcare E/
每次尝试运行我的项目时,我都会遇到一个问题,即找不到 ID 为“com.jakewharton.butterknife”的错误插件。出现有人能告诉我这段代码是怎么回事吗??我被卡住了,感谢任何帮助这是
我想在我的项目中使用 butterknife 。我按照 butterknife 教程做了一切。 但是当我为 View 设置任何东西(setText、setClickListener ...)时,我得到
如果已在 onCreate View 上绑定(bind) View ,但 onclick 不起作用。 这是我的代码: @Override public View onCreateView(Layout
我正在尝试使用 butterknife 。但我收到错误“无法解析符号'**ButterKnife'”。我尝试手动导入 butterknife.ButterKnife 但出现了相同的错误我修改了 gra
我已经安装了 ButterKnife 我的 build.gradle 看起来像这样: dependencies { compile fileTree(dir: 'libs', include:
在我的代码中,如果我想使用 butterknife,应该如何更改? Layout list_item是listview,所以我可以生成butterknife注入(inject),但我不知道如何修复其他
我正在尝试在我的 Android 项目中使用 ButterKnife。 我有一个Activity 实现了一个Interface。我正在使用 MVP 模式。我正在尝试从 EditText 获取文本,但它
我在考虑用Butter knife for android,好像简化代码很厉害 问题是我正在做游戏,所以性能和 apk 大小对我来说非常重要 我的问题是: butterknife 只在编译时使用还是在
我在当前项目中使用 Butterknife 库时遇到一些问题。我目前正在优化手机和平板电脑的项目,例如,有时两者的布局文件之间存在细微差异 布局/layout_example.xml l
我将 @OnClick 监听器设置为列表项中的 View 。在某些情况下,我需要禁用此 View 的监听器,以便 ListView 可以处理点击(应调用 OnItemClickListener),然后
我正在尝试实现 Butterknife进入我的android工作室项目。 但是,当我这样做时,我在 @InjectView 上收到错误“无法解析符号 InjectView”。 我没有成功实现 Butt
我已经创建了一个基类 recyclerview 并且我的其他类正在扩展基类。我已经实现了 butterknife .然而,当其他类扩展基类时,我得到的 View 为空。 下面是我的基类 public
我看到了 Butterknife 教程,它指出: @BindViews({android.R.id.text1, android.R.id.text2}) TextView textEmail,des
昨天我正在使用 butterknife 处理我正在进行的项目。但突然它停止工作了。ButterKnife.bind(this) 无法绑定(bind) View ,因此所有 View 都是抛出 Null
我是 Java 和 Butterknife 的新手,所以我遇到了一些麻烦。在此代码中,该函数正在记录登录按钮的工作情况,但实际上我被卡住了,因为我看不到有关我的应用程序错误或此按钮日志的任何信息。我真
使用 Butterknife 我有例如以下代码: @InjectView(R.id.foo) View vFoo; 但是当我运行 lint 时,我收到以下警告: Field is never assi
为什么 RecyclerView 适配器不能与 ButterKnife 一起使用? 它适用于 findViewById 但不适用于 ButterKnife 适配器类 public class Cate
我是一名优秀的程序员,十分优秀!