已存在的程序类型:org.hamcrest.CoreMatchers

时间:2018-06-19 09:59:02

标签: android android-gradle

当我构建我的应用程序时,我遇到了错误。

  

程序类型已存在:org.hamcrest.CoreMatchers

     

消息{kind = ERROR,text =程序类型已存在:org.hamcrest.CoreMatchers,sources = [未知源文件],工具名称= Optional.of(D8)}

我已经谷歌我的问题并喜欢类似的问题here,但无法得到正确的答案。

这是我的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        ndk {
            ndk {
                moduleName "exec"
                abiFilters 'armeabi-v7a'
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jni.srcDirs = []
            jniLibs.srcDirs = ['libs']
            res.srcDirs = ['src/main/res']
            assets.srcDirs = ['src/main/assets']
            manifest.srcFile 'src/main/AndroidManifest.xml'
        }
    }
    configurations.all{
        resolutionStrategy.force 'org.hamcrest:hamcrest-core:1.1'
    }

}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.j256.ormlite:ormlite-core:4.41'
    implementation 'com.j256.ormlite:ormlite-android:4.41'
    implementation 'com.googlecode.json-simple:json-simple:1.1.1'
    implementation 'org.mozilla:rhino:1.7.10'
}

感谢您的帮助!

3 个答案:

答案 0 :(得分:6)

下载json-simple 1.1.1的jar文件并将其放在libs文件夹中。

然后从implementation 'com.googlecode.json-simple:json-simple:1.1.1'中删除build.gradle

我不知道为什么这可以解决问题,因为我根本不知道为什么会出现这个问题。

答案 1 :(得分:0)

就我而言,我遇到了类似的错误。

我通过同步我的应用程序gradle找到了。原来,我修改了应用程序gradle代码,但没有同步,但是构建了项目。

答案 2 :(得分:0)

我发现从json-simple中排除依赖的JUnit也可以解决此问题:

implementation('com.googlecode.json-simple:json-simple:1.1.1') {
    exclude group: 'junit', module: 'junit'
}

simple-json的最新版本取决于JUnit 4.1,后者取决于hamcrest-core:1.1,在我看来,它与现有的hamcrest-core:1.3冲突。