欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > AGP8+ android.useNewApkCreator‘ is deprecated 打包失败

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

2025/2/1 4:00:20 来源:https://blog.csdn.net/printf123scanf/article/details/139416962  浏览:    关键词: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 的默认配置文件吧

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com