无法初始化Crashlytics,AndroidManifest.xml中缺少API密钥

时间:2013-06-05 05:34:30

标签: android eclipse crash-reports crashlytics

我发现了有关Crashlytics的问题。我已成功将崩解剂整合到日食中。并使用带有AndroidManifest.xml标记的meta-data文件中的api密钥配置我的示例Android应用程序。和我的活动课程中的Crashlytics.start(this)。但是当我试图运行它时,它给了我错误 无法初始化Crashlytics,AndroidManifest.xml中缺少API密钥。当条目已存在于menifest文件中时。以下是错误日志。

error_image

请帮帮我。

4 个答案:

答案 0 :(得分:5)

Marc来自Crashlytics。下面是一个示例AndroidManifest.xml - 应该可以帮到你。此外,我们很乐意通过crashlytics dot com提供支持。

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.example.myapp"
              android:versionCode="1"
              android:versionName="1.0">

        <uses-permission android:name="android.permission.INTERNET"/>

        <application android:label="@string/app_name">
                <activity android:name="MyActivity"
                          android:label="@string/app_name">
            </activity>

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

答案 1 :(得分:2)

你能发布你在AndroidManifest.xml写的内容吗? (当然,除了你的API密钥)。

有几个问题可以帮助确定问题:

  1. 您是否已将<meta-data> - 标记放在<application> - 代码?
  2. 您是否将com.crashlytics.ApiKey保留为android:name
  3. 另外,您是否使用了能够拥有多个AndroidManifest.xml文件的库?

答案 2 :(得分:0)

您应该查看上面提到的checklist

我的问题是Gradle使用的是一个较旧的预Fabric库。当我尝试使用新的Fabric插件时,它生成了以下内容:

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

请注意,该名称是指Fabric。将此更改为以下内容可解决此问题:

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

答案 3 :(得分:0)

我从旧版本更新了Crashlytics,元数据android:name="com.crashlytics.ApiKey"更改为android:name="io.fabric.ApiKey"。由于DexGuard删除了它认为未使用的元数据元素,这打破了我的发布版本。

修复是用一行添加 dexguard-project.txt

-keep class io.fabric.** { *; }

在撰写本文时,Crashlytics documentation on DexGuard尚未更新。