在将其标记为重复项之前,我已经尝试了所有可能出现的问题。已正确报告Java崩溃,但是来自本机库的崩溃没有调试符号。
我尝试过的:
./gradlew crashlyticsUploadSymbolsDevDebug // to upload the symbols manually
androidNdkOut 'build/intermediates/ndkBuild/devDebug/obj/local' //specify the ndk paths manually
androidNdkLibsOut 'build/intermediates/merged_native_libs/devDebug/out/lib'` //specify the ndk paths manually
当前设置:
依赖关系:
implementation('com.crashlytics.sdk.android:crashlytics:2.10.1@aar') { transitive = true }
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'
android.applicationVariants.all { variant ->
def variantName = variant.name.capitalize()
def task = task("ndkbuild${variantName}")
task.finalizedBy("crashlyticsUploadSymbols${variantName}")
}
crashlytics {
enableNdk true
manifestPath 'AndroidManifest.xml'
androidNdkOut 'build/intermediates/ndkBuild/devDebug/obj/local'
androidNdkLibsOut 'build/intermediates/merged_native_libs/devDebug/out/lib'
}
结构依赖项:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
// The Fabric Gradle plugin uses an open ended version to react
// quickly to Android tooling updates
classpath 'io.fabric.tools:gradle:1.31.2'
}
}
Fabric已安装并且正在使用Java层崩溃。
Fabric.Builder builder = new Fabric.Builder(this).kits(new Crashlytics(), new
CrashlyticsNdk());`
问题:报告了本机崩溃,但缺少调试符号,没有错误/输出指示它们为什么丢失。
我制作了一个示例应用程序,以便能够更轻松地重现它。您所要做的就是在firebase中创建一个项目,然后粘贴google-services.json文件并进行构建。Link to the repo
这可能是由于调试符号in another module或an outdated configuration引起的。
尝试像这样配置它:
crashlytics {
enableNdk true
// If using the Android plugin for Gradle version 2.2.0+ with the externalNativeBuild DSL,
// you should remove the androidNdkOut and androidNdkLibsOut properties, as these paths will
// automatically be detected by the Fabric plugin.
androidNdkOut 'obj'
androidNdkLibsOut 'libs'
manifestPath 'AndroidManifest.xml'
}
但是,您最好迁移到Firebase Crashlytics,因为Fabric会很快将其关闭:
Crashlytics已集成到Firebase中,具有仅适用于Firebase的新功能。新应用应使用Firebase中的Crashlytics来访问最新更新和功能。 Fabric Crashlytics和Fabric仪表板将在2020年3月31日之前提供给现有用户。