Android12新特性——google()maven()等第三方添加
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()等第三方添加相关推荐
- Android12 新特性及适配指南
Android 12(API 31)于2021年10月4日正式发布,正式版源代码也于当日被推送到AOSP Android开源项目.截止到笔者撰写这篇文章时,国内各终端厂商的在售Android设备,已经 ...
- Android12新特性
在 Android 11 的首个开发者预览版发布将近 1 年后,今天谷歌发布了 Android12 的首个开发者预览版.由于开发团队以及合作伙伴受到疫情的影响,谷歌推迟了 Android11 的正式发 ...
- Android O新特性-Google Play Protect
Google Play Protect大致了解 名词:Android设备的潜在有害应用(PHA) 简述 2017年5月18日凌晨的GoogleI/O开发者大会上,谷歌宣布推出GooglePlayPro ...
- 【Java 8 新特性】Java Comparator.thenComparing | 添加次级排序方式
Java Comparator.thenComparing | 添加次级排序方式 Comparator.thenComparing Comparator.thenComparingInt Compar ...
- Android7.0新特性、新功能
[本文转载来自http://blog.csdn.net/hao54216/article/details/52388755] 前言: 总想写点自己的东西,因为很多Android知识网上大部分都有教程, ...
- android各个版本的新特性
首先看看最新版本Android 11 : https://www.zhihu.com/question/420186152 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10 ...
- JDK9-17新特性
文章目录 环境准备 JAVA9 概述 一 语法层次的改变 1_钻石操作符号语法升级 2_try结构语法升级 3_下划线命名标识符的使用限制 二 API层次的改变 1_接口中的私有方法 2_String ...
- ES6、ES7、ES8、ES9、ES10 新特性ECMAScript版本简介
ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言 ES6新特性(2015) ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其 ...
- ES6、ES7、ES8、ES9、ES10新特性一览
ES全称ECMAScript,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMA-417.关于ECMA的最新资讯可以浏览 ECMA n ...
最新文章
- 字节跳动学习笔记:java多线程实现原理
- iis 6.0上部署.net 2.0和4.0网站
- bread是可数还是不可数_凡是规则,皆有例外——规则的可数名词复数,真的规则吗?...
- url 保持不变php,thinkphp3.2.3如何只改变地址url中的某一个分隔符,其它保持不变...
- 【ZOJ - 2949】Coins of Luck (概率dp,期望)
- linux正则 转义字符,正则表达式(5):转义符
- linux shell转换时间格式,在bash中转换日期格式
- Qt学习笔记常用容器
- UVA10465 Homer Simpson【递推】
- [摘抄]游戏主循环逻辑
- Git - Merge: refusing to merge unrelated histories
- 逻辑回归、LR算法、LR优缺点、LR推导、LR损失函数
- html制作排班表模板,你会制作排班表吗?手把手教你用Word制作!分分钟搞定!...
- android studio 中要在app名称中添加特殊符号
- 2019大数据挑战赛
- 颠倒Excel数据行顺序
- google离线地图制作
- css3 设置图片变灰(在微信端不能正常) 和透明
- LightDM配置说明
- 什么是 MaxCompute
热门文章
- 12306 订票助手 1.3
- 星起航:抖音小店项目值得投资吗?
- linux c语言反汇编分析,通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作...
- 2020-2021年度第1学期课程回顾总结
- 【资讯】福布斯:旅行积分计划是区块链主要目标,对旅行者来说是好消息
- java pboc 解密_PBOC圈存时用到3DES加密解密以及MAC计算方法
- 【Pytorch】No moudel named 'd2lzh_pytorch'
- ToDesk远程控制
- 智能多媒体会议室实施方案分析
- 2019百家号自媒体推荐机制