android - 未调用 Crashlytics/Fabric initializationCallback

标签 android kotlin crashlytics crashlytics-android

尝试使用 crashlytics 实现两个崩溃处理程序(如 Crashlytics Android SDK - custom UncaughtExceptionHandler 中所述)我无法让 intializationCalback 在 Kotlin 中工作。有人有同样的问题还是我的代码有问题? (澄清一下:success 和 failure 方法都没有被调用,因此新的 UncaughtException Handler 也没有被执行)

val core = CrashlyticsCore.Builder()
    .build()
Fabric.with(
    Fabric.Builder(contextProvider.invoke()).kits(
        Crashlytics.Builder()
            .core(core)
            .build()
    ).initializationCallback(object : InitializationCallback<Fabric> {
        override fun success(fabric: Fabric) {
            var mDefaultUEH = Thread.getDefaultUncaughtExceptionHandler()
            Thread.setDefaultUncaughtExceptionHandler { t, e ->
                Log.e("CrashLogger","Excpetion",e)
                mDefaultUEH.uncaughtException(t, e)
            }
        }

        override fun failure(e: Exception) {
            Log.e("CrashLogger", "Error during initialization ", e)
        }
    }
    ).build()
)

最佳答案

在我的应用程序类中尝试了几乎相同的代码,但它对我有用,调用了 success()。

class MyApplication: MultiDexApplication() {
    override fun onCreate() {
        super.onCreate()
        val core = CrashlyticsCore.Builder()
            .build()
        Fabric.with(
            Fabric.Builder(this)
                .kits(Crashlytics.Builder().core(core).build())
                .initializationCallback(object: InitializationCallback<Fabric> {
                    override fun success(p0: Fabric?) {
                        Timber.d("InitializationCallback success")
                    }
                    override fun failure(p0: Exception?) {
                        Timber.d("InitializationCallback failure")
                    }
                })
                .build()
        )
        ...
    }
    ...
}

检查这些

  • 在你的 AndroidManifest.xml 中检查 io.fabric.ApiKey
  • 检查您的 contextProvider.invoke() 是否返回适当的上下文
  • 尝试将 android.app.Application 作为上下文,看看它是否有效

关于android - 未调用 Crashlytics/Fabric initializationCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54213800/

相关文章:

java - 如何在录制时减少视频大小,Android?

iOS 构建后 Facebook 登录不起作用

android - 使用启用了 proguard 的 GSON

Android 媒体播放器在屏幕旋转时重新初始化

android - 如何解决 "recyclerView must not be null"

ios - Fabric Crashlytics 如何使用 Xcode 集成插件在 Jenkins 中上传 dSYM 文件

android - Appsflyer崩溃:致命异常:MultipleInstallBroadcastReceiver.java第43行的java.lang.NoSuchMethodError

android - 使用 fragment 和 ImageView 的 viewpager 中的内存不足错误

android - SQLite 没有空构造函数

android - 检查应用程序是否正在运行 - Kotlin