无法在 Android 上应用“io.fabric”插件

Posted

技术标签:

【中文标题】无法在 Android 上应用“io.fabric”插件【英文标题】:Failed to apply 'io.fabric' plugin on Android 【发布时间】:2018-11-04 22:02:48 【问题描述】:

我正在尝试添加 Firebase Crashlytics。 Firebase Crashlytics 教程非常简单: https://firebase.google.com/docs/crashlytics/get-started?authuser=0

我已经添加了存储库(在 buildscript 和所有项目中),以及类路径和依赖项的实现。就像在教程中一样。但是当我应用“io.fabric”插件(应用插件:“io.fabric”)并在 android Studio 中按“同步”时 - 显示下一个错误:

A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'io.fabric']
   > No such property: verboseGradlePlugin for class: java.lang.String

我在“应用插件:'com.android.application'”之后应用插件。 尝试将 Fabric 插件添加到 Android Studio - 没有帮助。 尝试了所有插件版本到 1.24.0。 (当前为 1.25.4) 缓存无效并重新启动 Android Studio。 尝试将“fabric.properties”文件以及“crashlytics.properties”文件添加到应用程序文件夹。 尝试将 -DverboseGradlePlugin=false 或使用 'true' 传递给 gradle 的 'build' 任务。

Gradle 知道 'io.fabric' 插件,但试图找到缺失的 'verboseGradlePlugin' 属性。我在谷歌中没有找到任何关于此类问题的信息。

也许有人已经遇到过同样的问题,或者对如何解决这个问题有任何建议?

更新: 我的项目级build.gradle 我的应用级build.gradle

Gradle 版本 - 4.4 Android gradle 插件版本 - 3.1.2

【问题讨论】:

请发布您的 build.gradle 以及你的 gradle 和 android gradle 插件版本 添加了项目级和应用级的gradle文件,提到了gradle版本 【参考方案1】:

第一步: 在您的项目级别 build.gradle 添加:

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

注意:此添加应严格粘贴在您的 buildscript 中,而不是您的 allprojects gradle 脚本中,如下所示:

buildscript 
repositories 
    jcenter()
    google()
    maven 
        url 'https://maven.fabric.io/public'
    

接下来,将 io.fabric 工具添加到同一个 gradle(build.gradle) 中的依赖项中

dependencies 
    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath 'com.google.gms:google-services:3.2.1'
    classpath 'io.fabric.tools:gradle:1.25.4'

完成此操作后,同步您的 gradle,然后再进行下一步。您应该为第 1 步准备好类似的内容

Step2:在您的应用级别 build.gradle 添加

apply plugin: 'io.fabric'

在你的依赖中:

dependencies 
// ...
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

现在再次同步并重建并运行您的项目。

注意:在操作项目级别 build.gradle 之后立即同步,然后再操作您的应用级别。

更多详情here

【讨论】:

【参考方案2】:

我遇到了完全相同的问题。该错误是由于项目级 build.gradle 中的额外属性“crashlytics”而产生的,这会产生冲突。

只需将额外的属性“crashlycs”更改为“crashlyticsVersion”或类似的东西,错误就会消失。

我还建议您在额外的属性中使用后缀“版本”以避免类似的错误。

【讨论】:

非常感谢,你为我节省了几个小时,我想知道 gradle 有多脆弱,怎么可能“覆盖”一个属性:/【参考方案3】:

在你的项目中你应该放

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

同时在app顶部的gradle文件中

apply plugin: 'io.fabric'

作为依赖项

implementation 'com.crashlytics.sdk.android:crashlytics:2.9.3'

【讨论】:

以上是关于无法在 Android 上应用“io.fabric”插件的主要内容,如果未能解决你的问题,请参考以下文章

Fabric Debug Craslytic 报告:注册,缺少构建 ID,应用插件:io.fabric

Lio/fabric/sdk/android/DefaultLogger;在 io.fabric.sdk.android.Fabric.<clinit>(Fabric.java:56) 在

Crashlytics Fabric.io 已弃用

无法下载 gradle.jar (io.fabric.tools:gradle:1.22.0)

错误:找不到fabric.aar (io.fabric.sdk.android:fabric:1.3.17)

Android - Android Studio 中 Could not GET 'https://maven.fabric.io/public/io/fabric/tools/gradle/