如何修复Gradle Build中的“无法处理kafka-clients-1.1.1.jar”错误

时间:2019-03-24 18:52:49

标签: java android gradle apache-kafka

在成功将Kafka-clients库添加到依赖项后,尝试运行Android应用程序时出现此错误。

java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/mac/.gradle/caches/modules-2/files-2.1/org.apache.kafka/kafka-clients/1.1.1/5e96463c4ed422dbed979ae1395176a9c676c090/kafka-clients-1.1.1.jar



Caused by: com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/mac/.gradle/caches/modules-2/files-2.1/org.apache.kafka/kafka-clients/1.1.1/5e96463c4ed422dbed979ae1395176a9c676c090/kafka-clients-1.1.1.jar
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:442)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
... 51 more

build.gradle文件的片段如下所示:

    dependencies { implementation 'org.apache.kafka:kafka-clients:1.1.1' }

请问我怎么可能做错了?

3 个答案:

答案 0 :(得分:0)

由于新Android Studio版本中对Kafka的支持,它给出了错误,请尝试降级依赖版本并尝试重新构建。

答案 1 :(得分:0)

尝试使用最新版本的Kaftka Client(2.1.1)修复它

答案 2 :(得分:0)

问题::从0.11.0.0版开始,Apache Kafka使用了MethodHandle,它在API级别26中添加。由于您的minSdkVersion小于26,因此编译器会抛出该异常错误。

解决方案::您有2个选项。

选项1:将gradle文件中的minSdkVersion更改为26。

android {

    compileSdkVersion 28
    buildToolsVersion "28.0.3"
    defaultConfig {
        ..."
        minSdkVersion 26 // Change this line
        ...
    }
    ...
}

选项2:将Apache Kafka版本降级到0.10.2.2

dependencies {
    implementation 'org.apache.kafka:kafka-clients:0.10.2.2'
}

注意:我建议您选择第一个选项,因为您可以毫无问题地使用最新版本的Apache Kafka。此外,将依赖项降级到较低版本并不总是最佳选择。