当我构建我的应用程序时,我遇到了错误。
程序类型已存在: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'
}
感谢您的帮助!
答案 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
冲突。