找不到参数的方法 create() - Crashlytics 问题

Posted

技术标签:

【中文标题】找不到参数的方法 create() - Crashlytics 问题【英文标题】:Could not find method create() for arguments - Crashlytics issue 【发布时间】:2019-02-27 16:16:55 【问题描述】:
Could not find method create() for arguments [crashlyticsStoreDeobsDebug, class com.crashlytics.tools.gradle.tasks.StoreMappingFileTask, com.android.build.gradle.internal.scope.BuildArtifactsHolder$FinalBuildableArtifact@2ac9ac29] on task set of type org.gradle.api.internal.tasks.DefaultTaskContainer.

项目处于工作状态,但从今天开始构建失败并出现上述错误。

Android Studio 3.2 预览版。

【问题讨论】:

请附上您的 gradle 和任何其他有关该问题的文件。 如果我评论“apply plugin: 'io.fabric'”行,构建会成功,但如果我像以前一样取消注释,构建会失败并出现给定错误。 昨天,我猜3.2是稳定版。 【参考方案1】:

更新:先检查Mike's answer!

旧答案:

Fabric 似乎发布了一个新版本,它破坏了某些应用的构建。

如果您有io.fabric.tools:gradle:1.+ 行(Fabric 推荐,但不理想),您将自动使用新版本。

与此同时,您可以将1.+ 替换为最新的“稳定”版本,即 1.25.4。 io.fabric.tools:gradle:1.25.4

【讨论】:

小更新:最新版本为1.26.0。但这不起作用。将版本设置为 1.25.4 就可以了 当您使用 1.+ 版本时,基本上使用最新版本 1.26.0 并且出现错误。因此,请确保您使用的是 1.25.4 来解决问题 已解决,但这不是最佳解决方案。等待面料解决这个问题。 1.26版本有问题,1.25.4版本一切ok 在版本号中使用+ 通常是不好的做法。 Fabric 为他们的插件推荐这个的事实一直让我很恼火。相反,我手动检查何时有新版本使用:maven.fabric.io/public/io/fabric/tools/gradle/…【参考方案2】:

来自 Fabric 的 Mike。如果您使用的是 Android Studio Gradle 插件的 3.2 版本,升级到 Gradle 的 4.10 Fabric Gradle 插件的 1.26.0 将解决此问题。

如果您使用的 AS Gradle 版本少于 3.2,则不会遇到此问题,但也不会获得最新版本的好处。如果您已更新到 AS Gradle 的 3.2 Fabric 的 Gradle 插件的 1.26.0,您将遇到此问题,使用低于 @ 的 Gradle 版本Gradle 的 987654327@。

【讨论】:

确认 - 这也有效。生成的 Gradle Sync 需要 4 分 25 秒(快速互联网和使用 SSD) 嗨,@Mike 我的案例 1.25.4 有效。但是 1.26.0 仍然失败。 嘿 Mohammad,您是否更新到 Fabric 的 1.26.0、AS Gradle 的 3.2 和 Gradle 本身的 4.10? 已确认;将 Gradle 更新为 4.10.2 修复了 Fabric 1.26.0 的问题 版本 1.26.1 具有向后兼容的修复程序。【参考方案3】:

当您使用 android studio 3.2 更新并使用 fabric gradle 版本 1.+ 时,您必须更改 fabric gradle 版本 1.+biuld.gradle(project) 文件中的 1.25.4

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


dependencies 
    //classpath 'io.fabric.tools:gradle:1.+'     // old version
    classpath 'io.fabric.tools:gradle:1.25.4'   // new version


注意:fabric gradle 最新版本虽然是1.26.0,但不是stable版本。stable版本是 1.25.4。它的工作正常。

【讨论】:

【参考方案4】:

更新

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

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

https://docs.fabric.io/android/changelog.html#september-27-2018

版本1.26.0 是问题

【讨论】:

【参考方案5】:

您只需要更新 Gradle 版本(在 Gradle-Wrapper.properties 中)。例如:

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

【讨论】:

【参考方案6】:

按照 Mike 的回答,您需要更改的文件位于:

project\gradle\wrapper\gradle-wrapper.properties

最新版本是4.10.2

【讨论】:

【参考方案7】:

对我来说,当我更新到需要 Android 插件 3.2.0-rc02 的 AS 3.2-RC02 时出现了问题。

所以我不得不回滚到当前稳定版本的 AS 3.1.4,这样我才能降级我的 Android 插件版本。我正在使用Android插件3.2.0-rc01

我还不得不将结构插件降级为1.24.4

【讨论】:

【参考方案8】:

现在在 Gradle 5.1.1 中看到了这一点

Crashlytics 版本:2.9.3

Gradle 工具版本:1.21.7

错误:在 org.gradle.api.DefaultTask 类型的任务“:App:fabricGenerateResourcesDebug”上找不到参数 [com.crashlytics.tools.gradle.tasks.FabricTaskBuilder$_pluginGenerateResources_closure4@28a32300] 的方法 leftShift()。

【讨论】:

以上是关于找不到参数的方法 create() - Crashlytics 问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS中的crash防护KVC造成的crash

android 怎么获取 真机 crash

create-react-app,安装错误(“找不到命令”)

“找不到命令:create-nuxt-app”有啥问题

为啥 create-react-app 找不到我的 Sass 变量

在 watchOS 5.2 崩溃时找不到适合组合的图像