当前位置: 首页 > news >正文

AGP8+ android.useNewApkCreator‘ is deprecated 打包失败

在这里插入图片描述

问题

新建一个项目,默认使用最新版的 AGP 和 Gradle,打包构建立马失败!

在这里插入图片描述

错误日志

Caused by: com.android.builder.errors.EvalIssueException: The option 'android.useNewApkCreator' is deprecated.

An exception occurred applying plugin request [id: 'com.android.application', version: '8.3.0']
> Failed to apply plugin 'com.android.internal.application'.> com.android.builder.errors.EvalIssueException: The option 'android.useNewApkCreator' is deprecated.The current default is 'true'.It was removed in version 8.0 of the Android Gradle plugin.

全局搜索,当前项目确实没有配置该属性 android.useNewApkCreator,这属性到底是哪里来的?

在这里插入图片描述

解决

我们都知道,project.properties 属性值主要数据来源是 gradle.properties 配置文件。

在这里插入图片描述

我们通过在 build.gradle 文件输出属性配置,确实是有该配置,并且值是 false

看起来怎么与这两句话意思相反呢?真是差点搞不懂了~

① The current default is ‘true’. 【实际输出确是 false】
② It was removed in version 8.0 of the Android Gradle plugin. 【removed 了,为什么输出还有值?】

val newApkKey = "android.useNewApkCreator"
val containsNewApkKey = project.properties.containsKey(newApkKey)
println("containsNewApkKey:${containsNewApkKey}")for (p in project.properties) {println("项目属性:${p.key} = ${p.value}")
}

在这里插入图片描述

根据上述第二点 ② 如果不是系统内预置,我们确认是否存在某个gradle.properties 文件内配置了该属性,并且这个文件是每个项目都会读取的?

果不其然,通过磁盘全局搜索发现一个醒目了路径下存在这个文件,打开一看正如我所想,注释掉之后再运行不再报错了~

#android.useNewApkCreator=false

这或许是 AS 的默认配置文件吧

在这里插入图片描述
在这里插入图片描述

相关文章:

  • Java进阶学习笔记36——算法
  • 浅谈IDEA中项目如何进行热部署
  • 实战16:基于apriori关联挖掘FP-growth算法挖掘关联规则的手机销售分析-代码+数据
  • 秦岚:结了婚就不要离婚了
  • idea项目maven下载依赖报错
  • YOLOv10:实时端到端目标检测的新突破
  • Springboot vue elementui 前后端分离 事故灾害案例管理系统
  • VS2015 +Qt 新建单元测试工程报错error LNK2019,error LNK2001: 无法解析的外部符号 WinMain
  • 安卓玩机搞机技巧综合资源----电脑控制手机 投屏操控的软件工具操作步骤解析【二十二】
  • 开源协议及静态链接和动态链接
  • 最新版点微同城源码34.7+全套插件+小程序前后端
  • 学习小心意——简单的循坏语句
  • Flink的简单学习二
  • 校园外卖系统的技术架构与实现方案
  • 诺亚财富——财富管理行业的进化逻辑
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • iOS 系统授权开发
  • mongodb--安装和初步使用教程
  • NSTimer学习笔记
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Spring Boot快速入门(一):Hello Spring Boot
  • Spring声明式事务管理之一:五大属性分析
  • vue.js框架原理浅析
  • Vue学习第二天
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 网页视频流m3u8/ts视频下载
  • 移动端解决方案学习记录
  • UI设计初学者应该如何入门?
  • 关于Android全面屏虚拟导航栏的适配总结
  • 回归生活:清理微信公众号
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 通过调用文摘列表API获取文摘
  • (2)STL算法之元素计数
  • (a /b)*c的值
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (不用互三)AI绘画工具应该如何选择
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (过滤器)Filter和(监听器)listener
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三)uboot源码分析
  • (十三)Maven插件解析运行机制
  • (五)IO流之ByteArrayInput/OutputStream
  • (原創) 未来三学期想要修的课 (日記)
  • (转) RFS+AutoItLibrary测试web对话框
  • (转载)OpenStack Hacker养成指南
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .Net环境下的缓存技术介绍
  • :O)修改linux硬件时间
  • @FeignClient注解,fallback和fallbackFactory