找不到参数的方法 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 问题的主要内容,如果未能解决你的问题,请参考以下文章
create-react-app,安装错误(“找不到命令”)