【问题标题】:crashlytics android studio gradle build failedcrashlytics android studio gradle 构建失败
【发布时间】:2015-02-06 04:35:07
【问题描述】:

我已将 crashlytics 插件安装到 android studio 0.9.3;在此之后我添加到我的项目中;它为 gradle、第一个活动等添加了行……;在此构建失败并出现此错误后:

错误:任务“:app:fabricCleanupResourcesDebug”执行失败。

Crashlytics 开发者工具错误。

这是我的 gradle 文件,我应该改变什么? Crashlytics 自动添加了它的行:

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

  dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
  }
}
apply plugin : 'com.android.application' apply plugin : 'io.fabric'

repositories {
  maven {
    url 'https://maven.fabric.io/public'
  }
}

android {
  compileSdkVersion 21
  buildToolsVersion "21.0.2"

  defaultConfig {
    applicationId "XXXXXXXXXXXXXXXXXXXXXXX"
    minSdkVersion 11
    targetSdkVersion 19
    versionCode 1
    versionName "1.0"
  }
  buildTypes {
    release {
      runProguard false
      proguardFiles getDefaultProguardFile('proguard-android.txt'),
      'proguard-rules.pro'
    }

  }
}

dependencies {
  compile fileTree(dir : 'libs', include : ['*.jar'])
  compile 'com.android.support:appcompat-v7:21.0.0'
  compile('com.crashlytics.sdk.android:crashlytics:2.1.0@aar') {
    transitive = true;
  }
}

.

【问题讨论】:

标签: android android-studio build gradle crashlytics


【解决方案1】:

在将 AndroidManifest.xml 文件中的 API 密钥替换为字符串引用而不是文字字符串后,我遇到了完全相同的问题。
使用文字字符串,错误消失了。

使用

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

不要使用

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

【讨论】:

  • florian here,android:value = "my twitter API key" 已设置,但无法解决显示错误的问题,例如:未找到带有 id 'io.fabric' 的插件.
  • 是的,我知道,它也无法解决空指针异常、np 问题以及我从未说过我的答案会解决的所有其他问题。我所指的“完全相同的问题”是“错误:任务':app:fabricCleanupResourcesDebug'的执行失败。” ;-)
  • 我不想在清单中硬编码我的密钥。我希望 Twitter 能解决这个问题并支持字符串引用。
  • 我认为您可以通过在清单文件中使用 placeholders 来解决此问题。然后在您的 build.gradle 中,您可以从未跟踪(私有)文件中加载属性(例如您的 API 密钥)并设置您的占位符值。
【解决方案2】:

我已经解决了这个问题。 我与 crashlytics 团队进行了长时间的交谈,但他们没有帮助我。

我的解决方案是创建单独的项目,并在该项目上安装 crashlytics。它将在该项目上生成 api 密钥。我只是复制了那个密钥并粘贴到我原来的项目中,它就可以工作了。不知道为什么它没有在我的初始项目中生成密钥。

【讨论】:

  • 太棒了!你节省了我的时间
  • 对我不起作用。当事情按预期工作时,从我之前生成的一个项目中获取了关键
  • 创建单独的项目,不要使用旧项目。也许这会有所帮助。让我知道结果。祝你好运
  • 哦,看到这个答案,现在发现了:stackoverflow.com/a/29621524/3101777
【解决方案3】:

是的,我在 AndroidManifest.xml 中添加了这段代码,它起作用了

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="yourapikey" />

【讨论】:

  • 能否请您添加有关您提供的解决方案的更多详细信息?
  • @Yuhan 我可以使用不同项目的api key,还是需要生成新的?
【解决方案4】:

在没有互联网连接的情况下首次运行应用程序时,应用程序无法将信息发送到服务器,因此请在服务器中注册您的应用程序。

【讨论】:

    【解决方案5】:

    这个错误是由于错误的 crashlaytics AppKey。请检查您的清单文件以确认。

    这是由于在清单文件中使用了字符串资源而不是硬编码的 AppKey。

    使用这个:

    <meta-data
    android:name="io.fabric.ApiKey"
    android:value="FABRIC_KEY"/>
    

    不要使用这个

    <meta-data
    android:name="io.fabric.ApiKey"
    android:value="@stringFABRIC_KEY"/>
    

    一切顺利

    【讨论】:

      【解决方案6】:

      打开 fabric.properties 并检查 apiKey 的值是否为 YOUR_API_KEY。 如果是,则从 AndroidManifest.xml 复制您的 API 密钥并将其粘贴到 fabric.properties 中的 apiKey

      【讨论】:

        猜你喜欢
        • 2020-10-16
        • 2013-06-13
        • 1970-01-01
        • 2016-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        相关资源
        最近更新 更多