构建Android Gradle项目时出现Crashlytics开发人员工具错误

54

我正在尝试使用Eclipse构建Android Gradle项目,但是在使用命令行构建项目时出现了以下错误:

 FAILURE: Build failed with an exception.

 * What went wrong:
 Execution failed for task ':app:crashlyticsCleanupResourcesRelease'.
 > Crashlytics Developer Tools error.

 * Try:
 Run with --stacktrace option to get the stack trace. Run with --info or --debug
 option to get more log output.

 BUILD FAILED
我正在使用Gradle版本1.10,也尝试过Gradle版本1.12,但我仍然遇到相同的错误。
这是我的build.gradle文件:
        buildscript {
            repositories {
                mavenCentral()
                maven { url 'http://download.crashlytics.com/maven' }
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:0.12.+'
                classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
                classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+'
            }
        }
        apply plugin: 'android-sdk-manager'
        apply plugin: 'android'
        apply plugin: 'crashlytics'

        repositories {
            mavenCentral()
            maven { url 'http://download.crashlytics.com/maven' }
        }

        android {
            compileSdkVersion 19
            buildToolsVersion "19.1.0"
            lintOptions.checkReleaseBuilds false

            defaultConfig {
                minSdkVersion 7
                targetSdkVersion 19
            }

            signingConfigs {
                release {
                    storeFile file(STORE_FILE)
                    storePassword STORE_PASSWORD
                    keyAlias KEY_ALIAS
                    keyPassword KEY_PASSWORD
                }
            }

            buildTypes {
              debug {

               ext.enableCrashlytics = false
               buildConfigField "boolean", "LOG_CRASHES", "false"
              }

              release {
                 buildConfigField "boolean", "LOG_CRASHES", "true"
                 runProguard true
                 proguardFile 'proguard.cfg'
                 signingConfig signingConfigs.release
              }
            }
        }

        dependencies {
            compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
            compile 'com.android.support:support-v4:19.1.0'
            compile 'com.crashlytics.android:crashlytics:1.+'
        }

你遇到了什么错误? - ariets
运行时请使用 --info 或 --debug 选项以查看更多有关错误的详细信息。 - Robert Estivill
6个回答

38

尝试使用Fabric的Twitter Kit时遇到了类似的错误

Error:Execution failed for task ':app:fabricCleanupResourcesDevDebug'.
> Crashlytics Developer Tools error.

详细错误

错误 - Crashlytics 开发者工具错误。 java.lang.IllegalArgumentException: Crashlytics 发现一个无效的 API 密钥:XXXXXXXXX。 检查 Crashlytics 插件以确保已成功添加应用程序! 联系 support@fabric.io 寻求帮助。

Fabric登录后,下载 Android Studio 插件并让它自动配置,一切都正常工作了。

(顺便说一句,我真的不喜欢这个设置流程)

编辑:也可以在不安装 Android Studio 插件的情况下完成。请按照 Fabric 网站上的这些说明进行操作。


1
非常好用!谢谢。所有人的额外信息:一旦您安装了插件,请打开插件并安装Crashlytics 2.5.5。它会提示一个问题 - 是否应该更新gradle文件。请选择是。在完成gradle同步后,Crashlytics错误将被解决。 - Abc.Xyz
Screenshot <img src="https://doc-00-9k-docs.googleusercontent.com/docs/securesc/6f495etelu18cv1n54ins4pgr9nlp4r4/ftis1u234rh5ekk6p8ajhahjtdrasjsj/1461031200000/16366544051894029835/16366544051894029835/0B0s7T4EnNAMrazB5YWZkc04yR2M?e=view&nonce=oudkpnin98sao&user=16366544051894029835&hash=mc9dbn80macu7o0mqofdgnu1b2eb0vga" width="100" height="100"> - Abc.Xyz
如果以上方法都不适用于您,只需打开 build.gradle 文件并将以下内容注释掉即可://apply plugin: 'io.fabric' - James Lobo

20

这不是对原问题的解决方案,但你也可能会以另一种方式遇到此错误。如果你正在按照Gradle高级设置文档进行操作,你可能已经包含了以下代码:

debug {
    ext.enableCrashlytics = false
}

现在,如果你正在测试应用程序,可能尝试设置ext.enableCrashlytics = true。然而,显然对于Crashlytics来说,这将导致错误,并且这个变量的值无效。

因此,如果你想要在调试构建中启用Crashlytics,你需要在测试时注释掉这一行代码或完全删除它。


你是个了不起的人,你回答了问题的实际解决方案。 - karthik kolanji

13
在你的应用程序清单文件的标签中添加这行代码。
<meta-data
        android:name="io.fabric.ApiKey"
        android:value="XXXXXXXXXXXXXXX" />

我解决了这个问题


7
请注意,如果您使用android:value="@string/your key" ,您也会收到错误提示。 - Entreco
我用这个方法解决了错误,下次在去Stack Overflow寻找答案之前我会先完成教程。 - sgelves

9

我通过在 AndroidManifest.xml 中将 "io.fabric.ApiKey" 替换为 "com.crashlytics.ApiKey" 来解决了这个问题(我不想更改 Crashlytics 库)。因此最终的代码如下:

 <meta-data
     android:name="com.crashlytics.ApiKey"
     android:value="xxxxxxxx" />

1
或者,确保您在fabric.properties文件中拥有API密钥。 - Rajath

5
<meta-data
     android:name="com.crashlytics.ApiKey"
     android:value="your key" />

我遇到了类似的问题。只需将以下行添加到Android清单文件即可。

这是解决方案+1。 - TapanHP
4
注意,如果你使用android:value="@string/your key",你也会得到错误。 - Entreco

1

我遇到了一个问题并解决了它。

基本上,我试图使用@string/crashlytics_key_prod,而不是放入实际密钥。

在清单文件中用实际密钥替换"@string/crashlytics_key_prod"可以为我解决这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接