我正在尝试按照Firebase Crashlytics NDK留档上定义的步骤设置我的Android项目以报告使用Firebase Crashlytics SDK的NDK崩溃。我尝试通过添加以下代码使用Firebase Crashlytics SDK(不是NDK库)报告崩溃,并成功报告崩溃。
releaseImplementation 'com.google.firebase:firebase-crashlytics:17.1.1'
我应用的更改正在更改NDK one的库:
releaseImplementation 'com.google.firebase:firebase-crashlytics-ndk:17.2.1'
并将文档提到的本地符号html" target="_blank">上传添加到app gradle文件中
buildTypes {
release {
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
}
}
我在日志上看到的错误是:
2020-08-25 08:39:24.859 16889-16889/? I/CrashlyticsInitProvider: CrashlyticsInitProvider skipping initialization
2020-08-25 08:39:27.258 16889-16889/? I/CrashlyticsCore: Initializing Crashlytics Core 2.7.0.33
2020-08-25 08:39:36.980 17454-17454/? E/FirebaseCrashlytics: libcrashlytics could not be loaded. This APK may not have been compiled for this device's architecture. NDK crashes will not be reported to Crashlytics:
JNI_ERR returned from JNI_OnLoad in "/data/app/com.mypackagename==/lib/arm64/libcrashlytics.so"
2020-08-25 08:39:37.392 17454-17454/? I/FirebaseCrashlytics: Initializing Crashlytics 17.2.1
2020-08-25 08:39:37.762 17454-17498/? I/FirebaseCrashlytics: Crashlytics NDK initialization FAILED
2020-08-25 08:39:39.661 17530-17530/? E/FirebaseCrashlytics: libcrashlytics could not be loaded. This APK may not have been compiled for this device's architecture. NDK crashes will not be reported to Crashlytics:
JNI_ERR returned from JNI_OnLoad in "/data/app/com.mypackagename==/lib/arm64/libcrashlytics.so"
在为NDK版本替换库之前,我可以强制Java崩溃,应用程序会立即崩溃,但当添加NDK版本时,应用程序似乎会挂起(像和ANR一样),而不会立即崩溃(可能是因为找不到库?)
在日志中显示:
2020-08-25 08:43:43.472 22214-22238/? I/FirebaseCrashlytics: Crashlytics NDK initialization FAILED
2020-08-25 08:43:43.538 22214-22325/? D/TransportRuntime.SQLiteEventStore: Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct
2020-08-25 08:43:43.561 22214-22341/? D/TransportRuntime.SQLiteEventStore: Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct
2020-08-25 08:43:43.579 22214-22342/? D/TransportRuntime.SQLiteEventStore: Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct
2020-08-25 08:43:43.591 22214-22343/? D/TransportRuntime.SQLiteEventStore: Storing event with priority=HIGHEST, name=FIREBASE_CRASHLYTICS_REPORT for destination cct
2020-08-25 08:43:50.150 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.n0.a(SourceFile:1)
2020-08-25 08:43:50.150 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.d.run(SourceFile:2)
2020-08-25 08:43:50.150 22214-22338/? A/com.mypackagename: runtime.cc:574] "com.google.firebase.crashlytics.startup1" prio=5 tid=17 Waiting
2020-08-25 08:43:50.151 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.n0.a(SourceFile:1)
2020-08-25 08:43:50.151 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.d.run(SourceFile:2)
2020-08-25 08:43:50.172 22214-22338/? A/com.mypackagename: runtime.cc:574] native: #12 pc 00000000001a0c86 /data/app/com.mypackagename==/oat/arm64/base.vdex (com.google.firebase.crashlytics.d.m.j0.uncaughtException+86)
2020-08-25 08:43:50.173 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.Z.M(SourceFile:-1)
2020-08-25 08:43:50.173 22214-22338/? A/com.mypackagename: runtime.cc:574] - waiting to lock <0x06ca8488> (a com.google.firebase.crashlytics.d.m.Z) held by thread 13
2020-08-25 08:43:50.173 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.j0.uncaughtException(SourceFile:5)
2020-08-25 08:43:50.177 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.Z.M(SourceFile:-1)
2020-08-25 08:43:50.178 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.Z.M(SourceFile:-1)
2020-08-25 08:43:50.178 22214-22338/? A/com.mypackagename: runtime.cc:574] at com.google.firebase.crashlytics.d.m.j0.uncaughtException(SourceFile:5)
2020-08-25 08:43:50.178 22214-22338/? A/com.mypackagename: runtime.cc:574] native: #06 pc 000000000019f15c /data/app/com.mypackagename==/oat/arm64/base.vdex (com.google.firebase.crashlytics.d.m.Z.M)
2020-08-25 08:43:50.178 22214-22338/? A/com.mypackagename: runtime.cc:574] native: #12 pc 00000000001a0c86 /data/app/com.mypackagename==/oat/arm64/base.vdex (com.google.firebase.crashlytics.d.m.j0.uncaughtException+86)
请注意,本机代码是与项目一起编译的,并且在jni文件夹中找到,可以正常工作(因此它适用于所有ABI)。我尝试在发布时运行并从Build生成一个签名的APK
除了@Kevin Kokomani的回答,您还可以遵循这个简单的指南,了解如何为您的应用程序的NDK图层正确设置Firebase Crashlytics。
来自您的日志:2020-08-25 08:39:27.258 16889-16889/? I/CrashlyticsCore:初始化Crashlytics Core2.7.0.33
这意味着在代码库的某个位置,有一个对旧 Fabric Crashlytics SDK 的依赖项的引用。您遇到的错误可能是由于您的设置中同时包含 Fabric 和 Firebase Crashlytics SDK 的元素而出现的。请确保代码库中没有任何内容可能引用旧的 Fabric SDK,并且你已按照此处的升级说明干净地更改了新 SDK 的旧 SDK。
以下是一些背景代码: InitiativeProfileQuestion。java: ProfileAnswer.java: InitiativeProfileQuestionRepository。java: InitiativeProfileService。java: 基础ontroller.java: 在我的BaseController中调用get问题()会返回“无法初始化代理-没有会话”错误
我有一个应用程序,我正在扩展它以提供REST API。在主站点中一切正常,但当我尝试访问REST API时,我在异常日志中得到以下内容: 禁用延迟加载将解决此问题,但会导致不可接受的性能(加载时间从 200 毫秒到 22 秒)。我不知道如何处理这个问题。 我刚开始在ColdFusion中Rest,在我看来,CFC正在以一种不寻常的方式被处理。它们似乎没有被初始化(init方法似乎没有运行),现在看
我有一个使用MIP SDK的Azure函数,当调用< code>MIP时,我得到以下错误。CreateMipContext(...): 令人惊讶的是,该错误仅在 Azure 上运行时发生。在本地运行时,一切都很好。 我正在使用MIP SDK v1.8.86和.NET Core 3.1。 知道OneDS是什么或者是什么导致了错误吗?
新CONF:我做了一些改变来配合你所说的。现在我删除了hibernate-cfg.xml并在spring-servlet.xml中做了所有的conf: 它可能来自我的java文件吗? 错误是: Bean 类 [org.springframework.orm.hibernate4.LocalSessionFactoryBean] 的属性 'transaction' 无效:Bean 属性 'trans
我有一个关于初始化的有趣问题。我有以下代码: 现在当我调用ErrorLookupProvider时。getInstance(),我碰到了一个NPE。中的映射未使用新的初始化。 如果我将的声明更改为final,那么我看到它已初始化。或者,即使我删除static并将其作为私有类变量
当我在iReport 5.1.0中预览JasperReports的报告时,它执行得很好。它包含一个饼图,当我需要从jsp文件运行它时,问题就来了。 烧烤-1.5-beta1.jar commons-beanutils-1.8.2.jar Commons-Collections-3.2.1.jar commons-digester-2.1.jar commons-javaflow-20060411.