gpt4 book ai didi

android - 无法在 android gradle 插件 4.1.0 中获取未知属性 'apkNames'

转载 作者:行者123 更新时间:2023-12-04 23:50:51 25 4
gpt4 key购买 nike

我在 build.gradle 中使用这段代码:

android {
applicationVariants.all { variant ->
variant.packageApplicationProvider.configure { packageApplicationTask ->
doLast {
packageApplicationTask.apkNames.each { apkName ->
def apkDir = "./build/outputs/apk/${flavorName}/${buildType.name}"
def apkDestName = apkName.replace("app-", "stickerly-android-" + variant.versionName + "-").replace(".apk", "-" + getDate() + ".apk")

println "#####Rename ${variant.name} Apk File"
copy {
from("$apkDir/$apkName").into(apkDir).rename { String fileName -> apkDestName }
}

println "#####Copy mapping File"
def mappingDir = "./build/outputs/mapping/${flavorName}${buildType.name.capitalize()}"
copy {
from("$mappingDir/mapping.txt").into(mappingDir).rename {
"mapping-stickerly-${variant.versionName}.txt"
}
}
}
}
}
}
}
使用此代码,我重命名 apk 文件并复制映射文件。我在 android gradle 插件 4.0 中工作,但在 4.1 中无法使用此消息

Where:

Script '/Users/snow/workspace/stickerly-android/app/build-android-extra.gradle' line: 5

What went wrong:

Execution failed for task ':app:packageExternalArm8Debug'.Could not get unknown property 'apkNames' for task ':app:packageExternalArm8Debug' of type com.android.build.gradle.tasks.PackageApplication.


我认为 API 发生了变化,但我找不到任何文档。有人可以帮助我吗?
谢谢。

最佳答案

在 AGP 4.1 中删除了属性 apkNames
你可以试试这个


gradle.taskGraph.afterTask { Task task, TaskState state ->
if (!state.failure
&& task.project.name == project.name
&& task.name.startsWith("package")
&& !task.name.endsWith("UnitTest")) {
def outputDir = task.outputDirectory.getAsFile().get()
task.variantOutputs.getOrNull()?.each { variant ->
println "" + outputDir + "/" + variant.outputFileName.get()
}
}
}

将此添加到 build.gradle 文件的末尾。
更改 println任何你想要的逻辑。
顺便说一句,如果你想检查你可能使用的属性,只需将 gradle 插件添加为项目的依赖项,单击 Sync在 Android Stuido 中,然后您可以在 External Librarys 中找到它(键映射:Command + 1,然后切换到项目 View )。
像这样
dependencies {
implementation 'com.android.tools.build:gradle:4.1.0'
}
这些属性和任务在 lib com.android.tools.build:gradle-api 中是故意不可见的,预计 future 版本中的修改。

关于android - 无法在 android gradle 插件 4.1.0 中获取未知属性 'apkNames',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64588504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com