【发布时间】:2017-10-30 15:01:57
【问题描述】:
在 Android Studio 3 上进行发布构建时出现以下错误
Error:Error: 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
任务: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 个警告
FAILURE:构建失败并出现异常。
-
出了什么问题: 任务 ':app:lintVitalRelease' 执行失败。
Lint 在组装发布目标时发现致命错误。
要继续,请修复 lint 确定的问题,或修改构建脚本,如下所示: ... 安卓 { lintOptions { checkReleaseBuilds 错误 // 或者,如果您愿意,您可以继续检查发布版本中的错误, // 但即使发现错误也要继续构建: 中止错误错误 } } ...
尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。
通过https://help.gradle.org获得更多帮助
【问题讨论】:
-
你使用什么构建工具?
-
我正在使用 Android Studio。点击“构建 -> 生成签名的 APK”
-
问题解决了吗?我也面临同样的问题。
-
@Hong 是的。在stackoverflow.com/a/47019266/271669 下方查看我的回答
-
谢谢。我假设您通过删除依赖项解决了问题。我看到了答案,但我不确定你做了什么。我希望在不删除任何依赖项的情况下找到解决方案。