在模块 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=真
所以我一直在尝试使用 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=真