没有这样的属性:类的范围:com.android.build.gradle.internal.variant.ApplicationVariantData

Posted

技术标签:

【中文标题】没有这样的属性:类的范围:com.android.build.gradle.internal.variant.ApplicationVariantData【英文标题】:No such property: scope for class: com.android.build.gradle.internal.variant.ApplicationVariantData 【发布时间】:2020-09-23 15:47:29 【问题描述】:

更新到 android Studio 4 后,出现以下错误: 配置项目 ':app' 时出现问题。

groovy.lang.MissingPropertyException:

我的毕业生:

classpath 'com.android.tools.build:gradle:4.1.0-alpha10'

gradle-wrapper.properties:

https://services.gradle.org/distributions/gradle-6.5-bin.zip

【问题讨论】:

看到同样的事情。你可以发布堆栈跟踪吗?我的包含类似这样的原因:groovy.lang.MissingPropertyException:没有这样的属性:类的范围:com.crashlytics.tools.gradle.ProjectVariantState.resolveStrippedNativeLibsPath(ProjectVariantState. groovy:256) 在 com.crashlytics.tools.gradle.ProjectVariantState.resolvePackagedNativeLibsPath(ProjectVariantState.groovy:240) 【参考方案1】:

我遇到了同样的问题。删除 build.gradle 中的所有结构引用解决了我的情况。

你可以尝试删除

apply plugin: 'io.fabric'

classpath 'io.fabric.tools:gradle:1.31.2'

您的 build.gradle 文件中的行。

Fabrics Crashlytics 已弃用。如果您使用的是 Fabric Crashlytics,则可以将其替换为 Firebase Crashlytics

【讨论】:

谢谢你,这解决了我的问题。安卓工作室 4.0 欢迎您,如果您仍想使用 crashlytics,您可以按照以下步骤将 firebase crashlytics 添加到您的项目中。 firebase.google.com/docs/crashlytics/… 谢谢@ycannot 这应该被接受的答案。【参考方案2】:

我遇到了同样的问题,尤其是与@display name 相同的堆栈跟踪(在 cmets 上)。

从那里我注意到对 Crashlytics 的引用。实际上这就是问题所在:旧的、已弃用的版本(来自 Fabric)。迁移到新的 Firebase Crashlytics 为我解决了这个问题。

【讨论】:

是的,从 Fabic 迁移到 Firebase (Google) firebase.google.com/docs/crashlytics/…【参考方案3】:

2020 年 10 月更新: Fabric 已弃用,因此删除所有依赖于 Fabric.io 的插件和依赖项

喜欢:

apply plugin: 'io.fabric'


classpath 'io.fabric.tools:gradle:1.31.2'



maven 
        url 'https://maven.fabric.io/public'
    

删除后你必须添加:

 classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0'

在你的build.gradle

https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android

【讨论】:

删除后必须添加类路径 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' apply plugin: 'com.google.firebase.crashlytics' firebase.google.com/docs/crashlytics/… 一石二鸟,gradle 更新,crashlytics 升级【参考方案4】:

只需将其删除或注释掉即可。它对我有用。

apply plugin: 'io.fabric'

classpath 'io.fabric.tools:gradle:1.+'

来自两个 gradle 文件。

【讨论】:

谢谢,我什至不知道为什么我们的项目中集成了fabric))) 是的,就是这样。我的项目太旧了,我必须删除所有过期的依赖【参考方案5】:

请将您的 Gradle 依赖更新为:

classpath "com.android.tools.build:gradle:4.0.0"

gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

【讨论】:

【参考方案6】:

当我将 Android Studio 从 4.0.2 升级到 4.1 时,这开始发生在我身上。不幸的是,我不得不更新一个仍然包含结构的分支,我让它工作的唯一方法是降级 android studio 并进行修复并能够进行新的构建。

在此处下载旧版本:

Windows:https://android-studio.en.uptodown.com/windows/versions

Mac:https://android-studio.en.uptodown.com/mac/versions

【讨论】:

您需要使用 firebase crashlytics 更改您的 Fabric crashlytics 使用情况。无论如何,您将要更新 android studio。 firebase.google.com/docs/crashlytics/… 我认为您错过了需要对仍然具有旧版本的特定分支进行更新的部分。如果您使用滚动发布的应用程序,并且商店中的版本需要修补程序并且具有新 Firebase 的下一个版本尚未准备好,则可能会发生这种情况。【参考方案7】:

我正在使用 Fabrics Crashlytics,在将我的 Gradle 的 Android 插件更新到版本 4.1 后,我遇到了同样的错误:

classpath 'com.android.tools.build:gradle:4.1.0-rc01'

我需要升级 gradle 插件以将本机调试符号上传到 Google Play 控制台,如此链接中所述。 https://developer.android.com/studio/preview/features#native-crash-symbolization

要使用 Android 插件 gradle 版本 4.1, 您的最低 gradle 版本需要是 6.5 版。 我用的是 gradle 6.5.1 版

distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip

从 Fabric Crashlytics 升级到 Firebase Crashlytics 为我解决了这个问题,这可能是因为 Fabric 与用于 gradle 的较新版本的 Android 插件不兼容。有关如何从 Fabric crashlytics 升级到 Firebase Crashlytics 的更多信息。看看这个链接https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android

【讨论】:

发布链接时请务必小心。只是一个链接是不好的做法。在这种情况下,可能提到的步骤的摘要会很好地补充这个答案【参考方案8】:

如果您在项目中使用com.google.firebase:firebase-crashlytics-gradle 依赖项,只需更新到版本2.0.0-beta04 它对我有帮助。

【讨论】:

【参考方案9】:

删除所有与不推荐使用的库相关的内容,例如结构崩溃分析等。

【讨论】:

【参考方案10】:

更新 build.gradle(项目级别)中的依赖项解决了我的问题:

        classpath 'com.android.tools.build:gradle:4.1.2'
        classpath 'com.google.gms:google-services:4.3.5'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0'

【讨论】:

【参考方案11】:

我将 de.mannodermaus.gradle.plugins:android-junit5 更新到最新版本

【讨论】:

【参考方案12】:

我在一个较长时间后维护的旧项目中遇到了这个问题。问题是该项目仍在使用旧的 gradle 脚本、插件和依赖项。

最大的问题是fabric.io 没有维护并且与最新的gradle 版本兼容。包含 crashlytics 引用的构建输出中的堆栈跟踪将我指向了结构。我建议检查一下。在您的情况下,它可能与其他插件有关。

堆栈跟踪示例:

at com.crashlytics.tools.gradle.ProjectVariantState$deriveFrom.call(Unknown Source)
at com.crashlytics.tools.gradle.CrashlyticsPlugin.createTaskBuilder(CrashlyticsPlugin.groovy:301)
at com.crashlytics.tools.gradle.CrashlyticsPlugin.this$2$createTaskBuilder(CrashlyticsPlugin.groovy)
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 com.crashlytics.tools.gradle.CrashlyticsPlugin.addPluginTasks(CrashlyticsPlugin.groovy:271)

【讨论】:

【参考方案13】:

在项目级别build.gradle 只需将依赖项'com.android.tools.build:gradle:4.5.0' 的版本降级到您的最后/较低版本是'com.android.tools.build:gradle:4.0.1'

"gradle-wrapper.properties" 中,将"distributionUrl=https\://services.gradle.org/distributions/gradle-6.5.1-all.zip" 降级到最后/较低版本,例如"distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip"。 并同步并运行。

【讨论】:

【参考方案14】:

在 Android Studio 上,只需打开 build.gradle (Project),IDE 就会建议对 crashlytics 进行更新,接受该更新后错误就会消失。

【讨论】:

以上是关于没有这样的属性:类的范围:com.android.build.gradle.internal.variant.ApplicationVariantData的主要内容,如果未能解决你的问题,请参考以下文章

vba 错误无法设置范围类的隐藏属性 错误 1004

使用@property

Android Studio - 没有这样的属性:类的 baseName

Mule Anypoint Studio groovy.lang.MissingPropertyException:没有这样的属性:类的 StringEscapeUtils

错误:没有这样的属性:类的组:org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer

gradle问题“main”groovy.lang.MissingPropertyException:没有这样的属性:类的baseDir:org.apache.catalina.core.Standa