我发现了有关Crashlytics的问题。我已成功将崩解剂整合到日食中。并使用带有AndroidManifest.xml
标记的meta-data
文件中的api密钥配置我的示例Android应用程序。和我的活动课程中的Crashlytics.start(this)
。但是当我试图运行它时,它给了我错误
无法初始化Crashlytics,AndroidManifest.xml中缺少API密钥。当条目已存在于menifest文件中时。以下是错误日志。
请帮帮我。
答案 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密钥)。
有几个问题可以帮助确定问题:
<meta-data>
- 标记放在<application>
- 代码?com.crashlytics.ApiKey
保留为android:name
?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尚未更新。