没有这样的属性:类的范围: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的主要内容,如果未能解决你的问题,请参考以下文章
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