Android12中第三方库的添加

添加第三方库错误提示:

Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'Google' was added by build file 'build.gradle'at org.gradle.internal.management.DefaultDependencyResolutionManagement.repoMutationDisallowedOnProject(DefaultDependencyResolutionManagement.java:201)at org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:264)at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:113)at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:253)at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.access$101(DefaultArtifactRepositoryContainer.java:35)at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.lambda$new$0(DefaultArtifactRepositoryContainer.java:38)at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addWithUniqueName(DefaultArtifactRepositoryContainer.java:101)at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addRepository(DefaultArtifactRepositoryContainer.java:89)at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addRepository(DefaultArtifactRepositoryContainer.java:84)at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.google(DefaultRepositoryHandler.java:151)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:484)at org.gradle.internal.metaobject.BeanDynamicObject.tryInvokeMethod(BeanDynamicObject.java:196)at org.gradle.internal.metaobject.CompositeDynamicObject.tryInvokeMethod(CompositeDynamicObject.java:98)at org.gradle.internal.extensibility.MixInClosurePropertiesAsMethodsDynamicObject.tryInvokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:34)at org.gradle.internal.metaobject.ConfigureDelegate.invokeMethod(ConfigureDelegate.java:56)

如果你遇到这个错误首先检查你的sdk版本是多少
如果是31,这就是问题所在

原因

我看到很多人提问使用Android Studio4.2出现这个问题,其实不然(至少我自己遇到的问题不是如此)。
其实主要问题不是你的AS版本,而是你的sdk版本问题。

方式1

你可以尝试先在AndroidStudio4.2中将你的sdk版本将到30,然后在build.gradle(project)中按照原本的方式(如下)重新添加依赖看是否还会有此问题,这是我老项目的处理方式。

allprojects {repositories {google()mavenCentral()jcenter() // Warning: this repository is going to shut down soonmaven { url "https://jitpack.io" }}
}

方式2

这也是google建议的方式
打开你的settings.gradle文件你就会惊喜的发现如下代码:

dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()jcenter() // Warning: this repository is going to shut down soon}
}

是不是很熟悉,没错其中repositories括号内的就是我们原本应该写在build.gradle(project)文件中的allprojects {}中的引用。
这就是google在此版本建议的引用方式。
所以你只需要将你需要引入的第三方库写在settings.gradle文件中即可。

备注:你会发现jcenter已经画了横线,所以不建议继续使用jcenter的第三方库,如果有使用了jcenter的建议尽早更换库或者根据第三方库的提示进行迁移。

这就是这个错误的解决方式,你可以根据你的项目实际情况进行选择哪个方式

(方式1是我自己根据自己项目情况使用的方式,目前我还没测试这个问题与Android Studio版本有什么关系,如果有人是使用Android Studio4.2或Android Studio Arctic Fox 并且sdk版本是30以下也会有这个问题,请评论一下一起寻找原因)

我自己目前Android Studio版本是
Android Studio Arctic Fox | 2020.3.1(M1mac版)

Android12新特性——google()maven()等第三方添加相关推荐

  1. Android12 新特性及适配指南

    Android 12(API 31)于2021年10月4日正式发布,正式版源代码也于当日被推送到AOSP Android开源项目.截止到笔者撰写这篇文章时,国内各终端厂商的在售Android设备,已经 ...

  2. Android12新特性

    在 Android 11 的首个开发者预览版发布将近 1 年后,今天谷歌发布了 Android12 的首个开发者预览版.由于开发团队以及合作伙伴受到疫情的影响,谷歌推迟了 Android11 的正式发 ...

  3. Android O新特性-Google Play Protect

    Google Play Protect大致了解 名词:Android设备的潜在有害应用(PHA) 简述 2017年5月18日凌晨的GoogleI/O开发者大会上,谷歌宣布推出GooglePlayPro ...

  4. 【Java 8 新特性】Java Comparator.thenComparing | 添加次级排序方式

    Java Comparator.thenComparing | 添加次级排序方式 Comparator.thenComparing Comparator.thenComparingInt Compar ...

  5. Android7.0新特性、新功能

    [本文转载来自http://blog.csdn.net/hao54216/article/details/52388755] 前言: 总想写点自己的东西,因为很多Android知识网上大部分都有教程, ...

  6. android各个版本的新特性

    首先看看最新版本Android 11 : https://www.zhihu.com/question/420186152 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10 ...

  7. JDK9-17新特性

    文章目录 环境准备 JAVA9 概述 一 语法层次的改变 1_钻石操作符号语法升级 2_try结构语法升级 3_下划线命名标识符的使用限制 二 API层次的改变 1_接口中的私有方法 2_String ...

  8. ES6、ES7、ES8、ES9、ES10 新特性ECMAScript版本简介

    ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言 ES6新特性(2015) ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其 ...

  9. ES6、ES7、ES8、ES9、ES10新特性一览

    ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-417.关于ECMA的最新资讯可以浏览 ECMA n ...

最新文章

  1. 字节跳动学习笔记:java多线程实现原理
  2. iis 6.0上部署.net 2.0和4.0网站
  3. bread是可数还是不可数_凡是规则,皆有例外——规则的可数名词复数,真的规则吗?...
  4. url 保持不变php,thinkphp3.2.3如何只改变地址url中的某一个分隔符,其它保持不变...
  5. 【ZOJ - 2949】Coins of Luck (概率dp,期望)
  6. linux正则 转义字符,正则表达式(5):转义符
  7. linux shell转换时间格式,在bash中转换日期格式
  8. Qt学习笔记常用容器
  9. UVA10465 Homer Simpson【递推】
  10. [摘抄]游戏主循环逻辑
  11. Git - Merge: refusing to merge unrelated histories
  12. 逻辑回归、LR算法、LR优缺点、LR推导、LR损失函数
  13. html制作排班表模板,你会制作排班表吗?手把手教你用Word制作!分分钟搞定!...
  14. android studio 中要在app名称中添加特殊符号
  15. 2019大数据挑战赛
  16. 颠倒Excel数据行顺序
  17. google离线地图制作
  18. css3 设置图片变灰(在微信端不能正常) 和透明
  19. LightDM配置说明
  20. 什么是 MaxCompute

热门文章

  1. 12306 订票助手 1.3
  2. 星起航:抖音小店项目值得投资吗?
  3. linux c语言反汇编分析,通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作...
  4. 2020-2021年度第1学期课程回顾总结
  5. 【资讯】福布斯:旅行积分计划是区块链主要目标,对旅行者来说是好消息
  6. java pboc 解密_PBOC圈存时用到3DES加密解密以及MAC计算方法
  7. 【Pytorch】No moudel named 'd2lzh_pytorch'
  8. ToDesk远程控制
  9. 智能多媒体会议室实施方案分析
  10. 2019百家号自媒体推荐机制