android - 如何在 Android Studio 中修复 'Duplicate classes'

标签 android gradle duplicates barcode zxing

我正在 Android Studio 中制作条形码扫描器应用程序,并为此使用了 zxing 库。如果我正在添加库并想要构建我的项目,则问题是“app:checkDebugDuplicateClasses”步骤将不起作用,并且控制台中会出现许多“重复类”错误。

我已经尝试通过“build.gradle”中的数千个小步骤来修复它,但都没有用。

那是我的 build.gradle 文件:

    compileSdkVersion 28
    defaultConfig {
        applicationId "eu.lenni.kran"
        minSdkVersion 28
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.journeyapps:zxing-android-embedded:3.4.0'
}

那是错误:

org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
    ... 6 more
Caused by: com.android.ide.common.workers.WorkerExecutorException: 1 exception was raised by workers:
java.lang.RuntimeException: Duplicate class android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat found in modules classes.jar (com.android.support:support-compat:28.0.0) and classes.jar (com.android.support:support-v4:23.1.0)
Duplicate class android.support.v4.app.ActionBarDrawerToggle found in

等等……

最佳答案

使用升级后的库版本

implementation('com.journeyapps:zxing-android-embedded:3.6.0') { transitive = false }

一切正常

更多详情:- https://github.com/journeyapps/zxing-android-embedded#adding-aar-dependency-with-gradle

关于android - 如何在 Android Studio 中修复 'Duplicate classes',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56504758/

相关文章:

java - 按钮点击,崩溃

Android 偏好类别样式

java - 在java中从CSV文件中提取值

c++ - 删除指针时出现段错误(核心已转储)

windows - 列出 2 个目录中的文件并进行比较

android - ViewPager 一次可以显示多个 View 吗?

java - Gradle 依赖项的 Eclipse 内容辅助

android - 此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 6 不兼容

gradle - Gradle 4.0-milestone2 集成测试

java - MySQL 将组成的唯一索引截断为 64 个字符