Android studio 3 gradle配置问题

2023-05-16

目录

    • 问题描述
    • 原因
    • 解决方法
    • 1)使用低版本的三方依赖库
    • 2)手动声明,排除高版本的依赖
    • 参考文章

问题描述

Duplicate class android.support.design.widget.CoordinatorLayout found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)
Duplicate class android.support.design.widget.CoordinatorLayout 1 f o u n d i n m o d u l e s c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : d e s i g n : 26.1.0 ) a n d c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o r e − u i : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . d e s i g n . w i d g e t . C o o r d i n a t o r L a y o u t 1 found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1) Duplicate class android.support.design.widget.CoordinatorLayout 1foundinmodulesclasses.jar(com.android.support:design:26.1.0)andclasses.jar(com.android.support:supportcoreui:27.1.1)Duplicateclassandroid.support.design.widget.CoordinatorLayoutBehavior found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)
Duplicate class android.support.design.widget.CoordinatorLayout D e f a u l t B e h a v i o r f o u n d i n m o d u l e s c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : d e s i g n : 26.1.0 ) a n d c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o r e − u i : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . d e s i g n . w i d g e t . C o o r d i n a t o r L a y o u t DefaultBehavior found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1) Duplicate class android.support.design.widget.CoordinatorLayout DefaultBehaviorfoundinmodulesclasses.jar(com.android.support:design:26.1.0)andclasses.jar(com.android.support:supportcoreui:27.1.1)Duplicateclassandroid.support.design.widget.CoordinatorLayoutDispatchChangeEvent found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)
Duplicate class android.support.design.widget.CoordinatorLayout H i e r a r c h y C h a n g e L i s t e n e r f o u n d i n m o d u l e s c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : d e s i g n : 26.1.0 ) a n d c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o r e − u i : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . d e s i g n . w i d g e t . C o o r d i n a t o r L a y o u t HierarchyChangeListener found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1) Duplicate class android.support.design.widget.CoordinatorLayout HierarchyChangeListenerfoundinmodulesclasses.jar(com.android.support:design:26.1.0)andclasses.jar(com.android.support:supportcoreui:27.1.1)Duplicateclassandroid.support.design.widget.CoordinatorLayoutLayoutParams found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)
Duplicate class android.support.design.widget.CoordinatorLayout O n P r e D r a w L i s t e n e r f o u n d i n m o d u l e s c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : d e s i g n : 26.1.0 ) a n d c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o r e − u i : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . d e s i g n . w i d g e t . C o o r d i n a t o r L a y o u t OnPreDrawListener found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1) Duplicate class android.support.design.widget.CoordinatorLayout OnPreDrawListenerfoundinmodulesclasses.jar(com.android.support:design:26.1.0)andclasses.jar(com.android.support:supportcoreui:27.1.1)Duplicateclassandroid.support.design.widget.CoordinatorLayoutSavedState found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)
Duplicate class android.support.design.widget.CoordinatorLayout$SavedState 1 f o u n d i n m o d u l e s c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : d e s i g n : 26.1.0 ) a n d c l a s s e s . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o r e − u i : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . d e s i g n . w i d g e t . C o o r d i n a t o r L a y o u t 1 found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1) Duplicate class android.support.design.widget.CoordinatorLayout 1foundinmodulesclasses.jar(com.android.support:design:26.1.0)andclasses.jar(com.android.support:supportcoreui:27.1.1)Duplicateclassandroid.support.design.widget.CoordinatorLayoutViewElevationComparator found in modules classes.jar (com.android.support:design:26.1.0) and classes.jar (com.android.support:support-core-ui:27.1.1)

Go to the documentation to learn how to Fix dependency resolution errors.

    开始看到这个问题也是蒙蔽状态,然后各种Google/Baidu。在stackoverflow上发现了突破口。
地址如下:https://stackoverflow.com/questions/56004932/hi-i-am-using-android-studio-and-im-am-getting-this-error-about-duplicated-dep
    然后自己看错误提示,大概了解了原因。

原因

    原因就是gradle有一个机制,假如引入的2个三方库有同一个依赖,然后都依赖support-core-ui这个jar文件,但是呢,第一个库依赖的是26的support-core-ui,    而第二个依赖的是27版本的。gradle会默认选择提升版本,使用27的。
大对数情况下是没问题的,因为会对以前的版本做兼容,但是也有些情况是特殊的,就是需要使用低版本的jar,这样怎么办呢。

解决方法

1)使用低版本的三方依赖库

    就是在gradle里面,将导入的依赖库版本调低一点。
    这样虽然也能达到效果,但是一直使用的是低版本的依赖库。

2)手动声明,排除高版本的依赖

    这里以anko库为例子,0.10.8的anko库会引入com.android.support:support-core-ui:27.1.1。
    但是会与com.android.support:design:26.1.0产生冲突,那我可以将anko手动声明排除com.android.support的引用。这样就可以使用高版本的anko的同时避免冲突。

//第一种写法
compile ('org.jetbrains.anko:anko:0.10.8')
{
    exclude group: 'com.android.support'
}
//第二种写法
implementation ('org.jetbrains.anko:anko:0.10.8') {
    exclude group: 'com.android.support'
}

参考文章

Gradle排除依赖模块的某个类:
https://www.jianshu.com/p/14a0c58b43b9

gradle 使用 exclude 解决jar包冲突:
https://blog.csdn.net/chongerfei6810/article/details/73650617

Android中gradle的implementation和api指令的区别
https://www.jianshu.com/p/d103808d42dc

错误信息
https://stackoverflow.com/questions/56004932/hi-i-am-using-android-studio-and-im-am-getting-this-error-about-duplicated-dep

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android studio 3 gradle配置问题 的相关文章

  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • 任务“:app:checkReleaseDuplicateClasses”执行失败

    我的 React Native Android 构建中突然出现构建问题 令人惊讶的是 它是早上建好的 没有做任何改变 但突然就失败了 这就是我得到的错误 知道为什么会发生这种情况吗 在 stack 和 GitHub 中也看到了一些类似的问题
  • ActionBarCompat 支持库 android:selectableItemBackground 不起作用

    我正在使用新的 ActionBarCompat 支持库 操作栏中的操作按钮在按下时应更改其背景 它适用于 Android 4 3 但不适用于 Gingerbread 在姜饼中 如果我按下按钮 它不会改变背景 我什至改变了选择器 它再次适用于
  • 不使用 CookieManager 的 Android 会话 cookie

    我的应用程序进行多次网络调用以获得身份验证 我需要将此会话存储在 cookie 中 我想使用 Cookie Manager 但经过一些研究后 我发现它仅适用于 API 9 及更高版本 并且我的应用程序需要向后兼容 我使用 HTTPURLCo
  • Android 上的硬币识别

    我目前正在开发一个 Android 应用程序 它能够拍摄硬币的现有图像 或者使用内置摄像头扫描单个硬币 非常像 Google Goggles 我正在使用 Android 版 OpenCV 我的问题如下 什么方法最适合使用 OpenCV 在
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • 将 ArrayList 保存在捆绑包 savingInstanceState 中

    ArrayList 是在类级别定义的 这些是我保存的实例方法 Override protected void onSaveInstanceState Bundle outState super onSaveInstanceState out
  • 如何从debug.keystore文件获取MD5?

    我使用一些命令来获取 MD5 私钥debug keystore文件 但实际上我得到的是 SHA1 私钥而不是 MD5 我不知道如何获得MD5 这是我使用的命令 keytool list alias androiddebugkey keyst
  • 我可以使用“导入 com.facebook.FacebookSdk;”使用 Facebook SDK 3.23.1?

    在我的 app build gradle 文件中 我有compile com facebook android facebook android sdk 3 23 1 在我的 BaseActivity java 文件 其中有 public
  • 如何使用 onSearchRequested() 调用搜索对话框

    我正在尝试实现搜索对话框 但无法显示活动中的搜索 我在清单文件中定义了主要活动 此活动向用户显示了他们必须从中选择的选项列表 选项之一是 搜索 选项
  • 如何使用 Gradle 2.10 将 ANTLR 词法分析器语法导入到另一个语法中?

    我一直在和 Terence Parr 一起学习 ANTLR 4权威的 ANTLR 4 参考 到目前为止我一直在使用 Gradle 2 10 及其内置 ANTLR 插件进行跟踪 然而 我在获取一些我从第 4 章第 38 41 页改编的代码以使
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 改造Android基本且简单的问题

    我的服务器返回简单的 Json 结果 如下所示 message Upload Success 我正在尝试将结果放入改造模型类中 public class MyResponse SerializedName message String me
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • 协程和 Firebase:如何实现类似 Javascript 的 Promise.all()

    在 Javascript 中 您可以同时启动两个 或更多 异步任务 等待它们完成 然后执行某些操作 继续 const firstReturn secondReturn await Promise all firstPromise secon
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • Android 视图和视图组

    在安卓中ViewGroup继承自View A ViewGroup是一个容器 里面装有Views ViewGroup LinearLayout View TextView 为什么 Android 的人们将这种关系定义为Inheritance而
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • 将数据放入短信发送意图中?

    我想发送短信 如果文字太长 我会将其分成多条消息 我试图将一些额外的信息放入 已发送 意图中 以了解哪个部分已发送 以及所有部分何时完成 ArrayList
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它

随机推荐