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

问题描述 投票:2回答:4

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

请帮我。

android eclipse crash-reports crashlytics
4个回答
5
投票

来自Crashlytics的Marc来自这里。下面是一个示例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> 

2
投票

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

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

  1. 你有没有把<meta-data>标签放在<application>标签内?
  2. 你把com.crashlytics.ApiKey保持为android:name吗?
  3. 另外,你是否使用库,使你有多个AndroidManifest.xml文件?

0
投票

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

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

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

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


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" />
© www.soinside.com 2019 - 2024. All rights reserved.