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配置问题 的相关文章

  • Firebase 管理 SDK Android

    在 Android 中初始化 Firebase Admin SDK 的代码 Override protected void onCreate Bundle savedInstanceState super onCreate savedIns
  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 共同的偏好不断消失

    我正在使用共享首选项来存储我的应用程序的登录凭据 除了一个用户之外 一切正常 一段时间后 共享偏好似乎会以某种方式重置或清除 我已针对该用户调整了我的应用程序 使其不再清除他的共享偏好设置 这样我就可以确定这不是我的应用程序的错 但即使在这
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • 如何查找 Android 设备中的所有文件并将它们放入列表中?

    我正在寻求帮助来列出 Android 外部存储设备中的所有文件 我想查找所有文件夹 包括主文件夹的子文件夹 有办法吗 我已经做了一个基本的工作 但我仍然没有得到想要的结果 这不起作用 这是我的代码 File files array file
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 应用程序未安装在 Android 模拟器上

    我正在 android Geocoder 中开发一个应用程序 当我运行该应用程序时 它会显示 2011 01 11 11 08 13 GeoTourProject 自动目标模式 使用现有模拟器 emulator 5554 运行兼容的 AVD
  • minHeight 有什么作用吗?

    在附图中 我希望按钮列与图像的高度相匹配 但我也希望按钮列有一个最小高度 它正确匹配图像的高度 但不遵守 minHeight 并且会使按钮向下滑动 我正在为按钮列设置这些属性
  • CookieManager.getInstance().removeAllCookie();不删除所有cookie

    我在应用程序的 onCreate 中调用 CookieManager getInstance removeAllCookie 我遇到了一个奇怪的问题 我看到 GET 请求中传递了意外的 cookie 值 事实上 cookie 值是一个非常非
  • ROOM迁移过程中如何处理索引信息

    CODE Entity tableName UserRepo indices Index value id unique true public class GitHubRepo PrimaryKey autoGenerate true p
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 调节麦克风录音音量

    我们正在尝试调整录音时的音量级别 麦克风似乎非常敏感 会接收到很多静电 我们查看了 setVolumeControlStream 但找不到传入其中来控制麦克风的流 将您的音频源设置为 MIC using MediaRecorder Audi
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi
  • 找到 Android 浏览器中使用的 webkit 版本?

    有没有办法知道某些特定手机上的 Android 浏览器使用的是哪个版本的 webkit 软件 如果有一个您可以浏览以获取该信息的 URL 那就太好了 但任何其他方式也很好 如果你知道 webkit 版本 你就知道 html5 支持多少 至少
  • 在 Google 地图上绘制线条/路径

    我很长一段时间都在忙于寻找如何在 HelloMapView 中的地图上的两个 GPS 点之间画一条线 但没有运气 谁能告诉我该怎么做 假设我使用扩展 MapView 的 HelloMapView 我需要使用叠加层吗 如果是这样 我是否必须重

随机推荐