如何启用 Firebase 崩溃报告 - Android

15

我按照文档中的所有步骤在我的Android应用程序中使用Firebase崩溃报告(我使用Android Studio,并且一切都是最新的)。

我使用他们提供的代码来抛出异常,以查看是否有效:

try {
    throw new NullPointerException();
} catch (NullPointerException ex) {
    FirebaseCrash.logcat(Log.ERROR, TAG, "NPE caught");
    FirebaseCrash.report(ex);
}

控制台输出以下日志:

E/MainActivity: 捕获到NPE

V/FirebaseCrash: Firebase 崩溃报告已禁用。

这是一个 build.gradle 文件。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'

        // Firebase - Google Services 3.0.0
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这是另一个build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'android-N'
    buildToolsVersion '24.0.0-rc2'

    defaultConfig {
        applicationId "com.app.test"
        minSdkVersion 19
        targetSdkVersion 'N'
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            useProguard true
        }
    }
}

dependencies {
    compile 'com.android.support:support-v4:24.0.0-alpha1'
    compile 'com.android.support:appcompat-v7:24.0.0-alpha1'
    compile 'com.android.support:design:24.0.0-alpha1'
    compile 'com.google.firebase:firebase-core:9.0.0'
    compile 'com.google.firebase:firebase-analytics:9.0.0'
    compile 'com.google.firebase:firebase-crash:9.0.0'
    compile 'com.google.firebase:firebase-messaging:9.0.0'
    compile 'com.google.firebase:firebase-config:9.0.0'
    compile 'com.google.firebase:firebase-invites:9.0.0'
    compile 'com.google.android.gms:play-services-appindexing:9.0.0'
}

apply plugin: 'com.google.gms.google-services'

我也使用:

mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
FirebaseMessaging.getInstance().subscribeToTopic("news");
Log.d(TAG, "Subscribed to news topic");

我添加了我需要的所有依赖项,但是我正在逐个添加并逐个测试,通知可以正常工作,分析:没有头绪,它需要大约24小时才能更新,所以在此之前,我不知道它是否正常工作...

那么问题是如何启用它?

注意:我已添加了所有依赖项,包括崩溃和核心依赖项,还有插件和类路径

谢谢您的帮助。


你是否也添加了google-services.json文件? - Gabriele Mariotti
是的,我按照文档和控制台上添加应用程序的所有步骤进行了操作。 - Minion
是的,但它们没有发送,它显示 Firebase 崩溃报告已禁用,每 24 小时更新的是 Firebase 分析。 - Minion
1
设备或模拟器必须安装Google Play服务9.0.x。如果您的设备安装了Google Play服务8.9.25,则Firebase Crash Reporting和Firebase Analytics将无法正常工作。一旦设备/模拟器更新到最新版本的Google Play服务,它应该可以正常工作。 - Arthur Thompson
1
请查看这个视频教程。它有详细的解释。 - Chintan Rathod
显示剩余13条评论
6个回答

19
请注意以下内容:
  • 在添加SDK之后,您可以尝试使用以下代码:

    FirebaseCrash.report(new Exception("我的第一个Android非致命性错误"));

  • 错误需要最多20分钟才能在崩溃报告控制台中显示。请返回以查看您的报告。

  • (这似乎很明显,但是)请确保您具有INTERNET和ACCESS_NETWORK_STATE权限。


你好,谢谢。我知道这个问题是由于 Android N 模拟器上过时的 Google Play 服务引起的,正如评论中的人们帮助了我。我期待着更新它,但似乎不可能。 - Minion
可能需要超过20分钟。我刚刚收到了V/FA-SVC: Upload scheduled in approximately ms: 1264312,大约21分钟左右,日志中也看到了22分钟。所以请耐心等待。;) 不幸的是,似乎没有清除缓存的方法。 - ubuntudroid
尽管报告部分似乎真的出了问题 - 对我来说,它只是非常随机地工作。大约只有20次刷新中的1次。大多数尝试都会显示“我们刚刚捕获了一个错误!我们正在处理错误数据,并将很快向您展示。” - ubuntudroid
哦,文档中说“错误需要1-2分钟才能显示在那里”:https://firebase.google.com/docs/crash/android#create_your_first_error - marcinj
嗨@yaircarreno。只是想确认是否实际上需要INTERNETACCESS_NETWORK_STATE权限?如果是这样,你有任何参考资料吗? :) 我正在查看Crash Reporting的快速入门,但在manifest中没有添加任何内容。还是文档缺失了?谢谢! :) - AL.

4

在我正确设置应用程序后,崩溃报告也无法正常工作。要解决此问题,我访问了我的开发人员控制台,API管理器,并启用了"移动崩溃和性能报告API"。要确定您需要执行此操作的确切位置,请按照此页面中的步骤进行操作。

如果按照上面链接中的步骤操作,则具有文本"E/FirebaseCrashSenderServiceImpl:Error sending crash report"的logcat会向您提供一个URL,以便您进入控制台启用崩溃报告。


我在任何开发者控制台中都找不到“移动崩溃和性能报告API”。 - sembozdemir
你按照我建议的步骤(在链接中)生成了崩溃吗?这将为您提供访问此屏幕所需的确切URL。单击它,它会带您到您找不到的屏幕。如果您找不到,请不要责怪我并投票否决我 - 我不是谷歌的员工,因此不负责任! - pbm
1
这也是我的问题,不知道为什么Firebase Crash文档中根本没有记录(可能是因为它还处于beta版)。日志中的URL是:https://console.developers.google.com/apis/api/mobilecrashreporting.googleapis.com/overview?project=<yourappid>。 - MrBigglesworth

1

0

您应该留出一些时间来等待显示。即使文档中说错误会在5分钟内显示,但可能需要15-20分钟。此外,如果您使用本地开发,则必须通过迁移将旧模块更改为AndroidX。最后,请确保所有工具和插件都已添加到适当的Gradle文件中。


0

我曾经遇到过同样的问题。后来发现我的项目 gradle 文件中缺少了依赖项。尝试添加这个,应该会有所帮助。

buildscript {
      repositories {
        jcenter()
        // ...
      }

      dependencies {
        // ...
        classpath 'com.google.firebase:firebase-plugins:1.0.5'
      }
    }

0

添加以下代码: 在项目级别的 build.gradle (/build.gradle) 文件中:

buildscript {
dependencies {

// Add this line
classpath 'com.google.gms:google-services:3.0.0'
}
}

在应用级别的 build.gradle 文件中(//build.gradle):
// Add to the bottom of the file
apply plugin: 'com.google.gms.google-services'


//Add following in In App-level build.gradle
compile 'com.google.firebase:firebase-crash:9.0.0'

现在同步您的项目, 在您的活动中使用以下代码抛出异常:

FirebaseCrash.report(new Exception("App Name : My first Android non-fatal error"));

查看 使用 Firebase 进行 Android 崩溃报告 教程,获取完整指南。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接