我试图找出如何使用Fabric的Crashlytics为我的React Native Android APP。我按照Fabric主页上的步骤操作,并在build.gradle文件中添加了一些行。但是构建总是崩溃。
对于使用Android Studio和Java的本机Android开发,使用Crashlytics进行React Native Android和Crashlytics会有区别吗?
我让它以某种方式工作,但它可能不是完美的解决方案......
1:将fabric / crashlytics添加到app / build.gradle中 - 文件(我的app / build.gradle中没有buildscript,所以我只是包含它。但我不确定这是不是很好....)
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.+'
}
}
// Add this directly under: apply plugin: "com.android.application"
apply plugin: 'io.fabric'
// and this directly under: apply from: "react.gradle"
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
// Last but not least add Crashlytics Kit into dependencies
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true
}
2:最重要的,因为它没有提到(或者我没有在任何地方找到它),将Crashlytics和Fabric导入MainActivity:
import com.crashlytics.android.Crashlytics;
import io.fabric.sdk.android.Fabric;
3:在你的onCreate - 方法中添加:
// Fabrics
Fabric.with(this, new Crashlytics());
完成此操作后,您至少会获得由本机代码(Java代码)引起的Crashreports。通过JS引起的崩溃 - 语法或类似的不会被通知。在那里你会得到已知的RedBox:P
祝好运!
对于较新版本的React Native,您必须导入Bundle并放置自己的onCreate方法,如下所示:
// Added Bundle to use onCreate which is needed for our Fabrics workaround
import android.os.Bundle;
..........
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Fabrics
Fabric.with(this, new Crashlytics());
}
不确定这是否好,因为他们已经删除了onCreate但它对我有用
试试这个:https://fabric.io/kits/android/crashlytics/install
总结您需要在Android安装中编辑的所有文件。对于AndroidManifest.xml文件,将android:value键(例如下面的内容)替换为您的实际API密钥。请记住从组织设置中获取API密钥... 1.登录https://fabric.io/settings/organizations并2.单击构建密钥。
<meta-data
android:name="io.fabric.ApiKey"
android:value="<api key here>"
/>