错误:json定义的类与Android

时间:2017-10-30 15:01:58

标签: java android json

在Android Studio 3上进行发布版本时出现以下错误

错误:错误:json定义的类与Android现在提供的类冲突。解决方案包括查找不具有相同问题的新版本或替代库(例如,对于httpclient使用HttpUrlConnection或okhttp),或使用类似jarjar的东西重新打包库。 [DuplicatePlatformClasses]

以下是我的依赖项:

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但是我无法找到上述哪个依赖项导致问题。

这是我跑步时得到的

gradlew assembleRelease
  

任务:app:lintVitalRelease   /Users/kruyvanna/Projects/key/HappyKey_Android2/app/build.gradle:错误:json定义的类与Android现在提供的类冲突。解决方案包括查找不具有相同问题的新版本或替代库(例如,对于httpclient使用HttpUrlConnection或okhttp),或使用类似jarjar的东西重新打包库。 [DuplicatePlatformClasses]

类型问题的解释&#34; DuplicatePlatformClasses&#34;:    有许多库不仅仅复制了它的功能    Android平台,但使用完全相同的类名    在Android中提供 - 例如apache http类。这可能导致    意外崩溃。

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

1个错误,0个警告

失败:构建因异常而失败。

  • 出了什么问题: 任务执行失败&#39;:app:lintVitalRelease&#39;。

      

    Lint在组装释放目标时发现致命错误。

    要继续,请修复lint标识的问题,或修改构建脚本,如下所示: ... android {   lintOptions {       checkReleaseBuilds false       //或者,如果您愿意,可以继续检查发布版本中的错误,       //但是即使发现错误也继续构建:       abortOnError为false   } } ...

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

  • https://help.gradle.org

  • 获取更多帮助

4 个答案:

答案 0 :(得分:8)

我通过添加:

来修复它
configurations {
    all {
        exclude group: 'org.json', module: 'json'
    }
}

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

答案 1 :(得分:2)

转到命令行并查看依赖关系树。这将为您提供应用使用的所有内容的列表:

./gradlew dependencies

答案 2 :(得分:2)

app/build.gradle

中添加此内容
configurations {
    all {
        exclude module: 'commons-logging'
    }
}

答案 3 :(得分:0)

我逐个添加了依赖项,发现这个导致错误

compile "me.tatarka.redux:redux-monitor:0.10"