我发现了关于Crashlytics的问题。我已成功将崩解剂整合到日食中。并使用AndroidManifest.xml
标记在meta-data
文件中配置我的示例Android应用程序与api密钥。和我的活动课上的Crashlytics.start(this)
。但是当我尝试运行它时,它给我一个错误,即Crashlytics无法初始化,AndroidManifest.xml中缺少API密钥。当条目已经存在于menifest文件中时。以下是错误日志。
请帮我。
来自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>
你能发布你在AndroidManifest.xml
写的东西吗? (当然,除了你的API密钥)。
有几个问题可以帮助确定问题:
<meta-data>
标签放在<application>
标签内?com.crashlytics.ApiKey
保持为android:name
吗?AndroidManifest.xml
文件?我从旧版本更新了Crashlytics,将元数据android:name="com.crashlytics.ApiKey"
更改为android:name="io.fabric.ApiKey"
。这打破了我的发布构建,因为DexGuard删除了它认为未使用的元数据元素。
修复是使用一行添加dexguard-project.txt:
-keep class io.fabric.** { *; }
在撰写本文时,Crashlytics documentation on DexGuard尚未更新。
你应该通过上面提到的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" />