我正在试图弄清楚如何使用Fabric中的Crashlytics来实现我的React Native Android APP。我按照Fabric主页上的步骤操作,并在build.gradle文件中添加了一些行。但是构建总是崩溃。
对于使用Android Studio和Java的本机Android开发,使用Crashlytics进行React Native Android和Crashlytics会有区别吗?
答案 0 :(得分:12)
我让它以某种方式工作,但它可能不是完美的解决方案......
1:在您的app / build.gradle中添加fabric / crashlytics - 文件 (我的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
祝你好运!答案 1 :(得分:4)
对于较新版本的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但它适用于我
答案 2 :(得分:0)
试试这个: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>"
/>