在模块 graphview 中发现重复 class

Duplicate class found in modules graphview

所以我一直在尝试使用 GraphView。我已将它导入到我的依赖项中,但由于某种原因,我收到了依赖项解析错误。这是我的 app/build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 15
        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.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.getbase:floatingactionbutton:1.10.1'
    implementation 'org.jetbrains:annotations-java5:15.0'
    implementation 'com.jjoe64:graphview:4.2.2'
}

但是当我尝试 运行 应用程序时,构建失败并且出现以下错误:

"Duplicate class com.jjoe64.graphview.GraphView found in modules GraphView-3.0.jar (GraphView-3.0.jar) and classes.jar (com.jjoe64:graphview:4.2.2)
Duplicate class com.jjoe64.graphview.GraphView found in modules GraphView-3.0.jar (GraphView-3.0.jar) and classes.jar (com.jjoe64:graphview:4.2.2)

转到文档以了解如何修复依赖项解析错误。

"implementation 'com.android.support:appcompat-v7:28.0.0'" 行显示错误,并声称我同时使用版本 28.0.0 和 27.1.1。

我错过了什么?

问题的发生可能是因为两个库使用相同的 class。在本例中为 GraphView-3.0.jar。编译器无法选择需要使用哪一个。因此,您可以删除其中一个库中的这个 .jar,然后尝试使用它。

否则,您可以只使用支持库的版本 appcompat-v7:27.1.1,然后两个库将使用相同的版本,不会有任何冲突。

这里描述了类似的问题和可能的解决方案:link

您似乎更新了库版本。对于从 3.0 到 4.2.2 的图形视图。与 appcompat 相同。但是 gradle 由于某些原因无法删除旧库。所以它试图将这两个库都添加到类路径中。

尝试清理并构建项目。如果不起作用,请清除 gradle 缓存并重建。如果还是不行,手动找到旧的jar并删除。

您可以将以下行添加到您的 gradle.properties 文件中:(如果有则不要重复)

android.useAndroidX=真 android.enableJetifier=真

来源:https://github.com/jjoe64/GraphView/issues/677