首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误: json定义了与现在由Android提供的类冲突的类。

错误: json定义了与现在由Android提供的类冲突的类。
EN

Stack Overflow用户
提问于 2017-10-30 15:01:57
回答 4查看 11.1K关注 0票数 23

在Android 3上进行发行版构建时,我得到了以下错误

错误: json定义了与现在由Android提供的类冲突的类。解决方案包括找到不存在相同问题的更新版本或替代库(例如,对于httpclient使用HttpUrlConnection或okhttp ),或者使用jarjar之类的方法重新打包库。DuplicatePlatformClasses

以下是我的依赖关系:

代码语言:javascript
复制
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:26.0.1'
    compile 'com.android.support:support-v4:26.0.1'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    compile 'com.evernote:android-job:1.2.0'
    compile 'com.amitshekhar.android:android-networking:1.0.0'
    compile 'com.facebook.stetho:stetho:1.5.0'
    compile "me.tatarka.redux:redux-core:0.10"
    compile "me.tatarka.redux:redux-android:0.10"
    compile "me.tatarka.redux:redux-android-lifecycle:0.10"
    compile "me.tatarka.redux:redux-thunk:0.10"
    annotationProcessor "org.immutables:value:2.5.5" // <-- for annotation processor
    provided "org.immutables:value:2.5.5" // for annotations
    provided "org.immutables:builder:2.5.5" // for annotations

    compile "me.tatarka.redux:redux-monitor:0.10"
    testCompile 'junit:junit:4.12'
}

它说的是json,但我找不到上面的哪个依赖项导致了问题。

这是我跑步时得到的

代码语言:javascript
复制
gradlew assembleRelease

任务:app:lintVitalRelease错误: json定义了与现在由Android提供的类冲突的类。解决方案包括找到不存在相同问题的更新版本或替代库(例如,对于httpclient使用HttpUrlConnection或okhttp ),或者使用jarjar之类的方法重新打包库。DuplicatePlatformClasses

对“DuplicatePlatformClasses”类型问题的解释:有许多库不仅重复了Android平台的功能,而且使用了与Android中提供的类名完全相同的类名--例如apache类。这可能导致意外的崩溃。

要解决这个问题,您需要找到不再存在此问题的库的更新版本,或者使用jarjar工具重新打包库(及其所有依赖项),或者最后,重写代码以使用不同的API(例如,对于http代码,可以考虑使用HttpUrlConnection或类似于okhttp的库)。

1错误,0警告

失败:生成失败,出现异常。

  • 哪里出了问题:任务执行失败':app:lintVitalRelease‘。 林特在组装发布目标时发现了致命错误。

若要继续进行,请修复lint标识的问题,或按以下方式修改构建脚本:android { lintOptions { checkReleaseBuilds false //或,如果您愿意,可以继续检查发布版本中的错误,//但即使发现错误: abortOnError false },也可以继续构建。

  • 尝试:使用--stacktrace选项运行以获得堆栈跟踪。使用--info或-调试选项运行以获得更多日志输出。
  • https://help.gradle.org获得更多帮助
EN

回答 4

Stack Overflow用户

发布于 2017-11-21 10:15:09

我修正了它,增加了:

代码语言:javascript
复制
configurations {
    all {
        exclude group: 'org.json', module: 'json'
    }
}

对于模块gradle文件,不需要删除依赖项。

票数 28
EN

Stack Overflow用户

发布于 2018-01-31 09:52:58

将此添加到您的app/build.gradle

代码语言:javascript
复制
configurations {
    all {
        exclude module: 'commons-logging'
    }
}
票数 5
EN

Stack Overflow用户

发布于 2017-10-30 15:19:41

转到命令行,查看依赖树。这将为您列出应用程序使用的所有内容:

代码语言:javascript
复制
./gradlew dependencies
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47018437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档