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

2022-09-02 01:17:59

我在Android Studio 3上进行发布构建时遇到以下错误

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

以下是我的依赖关系:

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

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

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

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

1 个错误,0 个警告

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

  • 出了什么问题:任务“:app:lintVitalRelease”的执行失败。

    Lint 在组装发布目标时发现了致命错误。

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

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

  • https://help.gradle.org 获取更多帮助


答案 1

我通过添加以下内容来修复它:

configurations {
    all {
        exclude group: 'org.json', module: 'json'
    }
}

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


答案 2

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

configurations {
    all {
        exclude module: 'commons-logging'
    }
}