Grade Plugin 3-alpha1 outputFile 导致错误 [英] Grade Plugin 3-alpha1 outputFile causes error
问题描述
我正在尝试将项目更新到 Android Studio 3.
I'm trying to update a project to Android Studio 3.
以下代码片段不再被 build.gradle 文件接受.
The following snippet is no longer accepted in a build.gradle file.
applicationVariants.all { variant ->
variant.outputs.each { out ->
def oFile =out.outputFile // This line causes failure
//...
}
}
错误是一个简单的无效",但智能感知表明它可以自动完成.
The error is a simple "Not Valid" yet the intellisense suggests it is as it autocompletes fine.
检查idea.log显示如下异常:
Checking the idea.log shows the following exception:
Caused by: java.lang.RuntimeException: Not valid.
at com.android.ide.common.build.ApkData.getMainOutputFile(ApkData.java:136)
at com.android.build.gradle.internal.api.BaseVariantOutputImpl.getOutputFile(BaseVariantOutputImpl.java:60)
at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getOutputFile(Unknown Source)
at org.gradle.internal.metaobject.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:228)
at org.gradle.internal.metaobject.BeanDynamicObject.tryGetProperty(BeanDynamicObject.java:171)
at org.gradle.internal.metaobject.CompositeDynamicObject.tryGetProperty(CompositeDynamicObject.java:55)
at org.gradle.internal.metaobject.AbstractDynamicObject.getProperty(AbstractDynamicObject.java:59)
at com.android.build.gradle.internal.api.ApkVariantOutputImpl_Decorated.getProperty(Unknown Source)
我找不到关于 Gradle 4 的文档.这可能是一个错误还是一个已弃用的函数?
I can find no documentation on Gradle 4. Would this be a bug or a function that is deprecated perhaps?
也提交于:https://issuetracker.google.com/issues/38408231
推荐答案
更新:修复APK重命名:
使用所有迭代器而不是每个:
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "${variant.name}-${variant.versionName}.apk"
}
}
<小时>
以前的答案,仍然有效:这是新插件的一个已知问题:
Previous answer, still valid: It's a known problem with the new plugin:
发生此构建错误是因为在配置阶段不再创建特定于变体的任务.这导致插件不知道它的所有输出,但这也意味着更快的配置时间.作为替代方案,我们将引入新的 API 来提供类似的功能.
This build error occurs because variant-specific tasks are no longer created during the configuration stage. This results in the plugin not knowing all of its outputs up front, but it also means faster configuration times. As an alternative, we will introduce new APIs to provide similar functionality.
根据 迁移指南.
这篇关于Grade Plugin 3-alpha1 outputFile 导致错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!