如何为我的 React Native Android 应用程序使用 Crashlytics?
How do I use Crashlytics for my React Native Android App?
我正在尝试弄清楚如何将 Fabric 中的 Crashlytics 用于我的 React Native Android 应用程序。我遵循 Fabric 主页上的步骤并在我的 build.gradle 文件中添加了一些行。但是构建总是崩溃。
使用 Crashlytics for React Native Android 和 Crashlytics for Native Android development 使用 Android Studio 和 Java 有区别吗?
我以某种方式让它工作,但它可能不是完美的解决方案...
1: 添加 fabric/crashlytics 到你的 app/build.gradle - 文件
(我的 app/build.gradle 中没有构建脚本,所以我只是包含了它。但我不确定这是否好....)
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 代码)引起的崩溃报告。通过 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>"
/>
我正在尝试弄清楚如何将 Fabric 中的 Crashlytics 用于我的 React Native Android 应用程序。我遵循 Fabric 主页上的步骤并在我的 build.gradle 文件中添加了一些行。但是构建总是崩溃。
使用 Crashlytics for React Native Android 和 Crashlytics for Native Android development 使用 Android Studio 和 Java 有区别吗?
我以某种方式让它工作,但它可能不是完美的解决方案...
1: 添加 fabric/crashlytics 到你的 app/build.gradle - 文件 (我的 app/build.gradle 中没有构建脚本,所以我只是包含了它。但我不确定这是否好....)
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 代码)引起的崩溃报告。通过 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>"
/>