Как загрузить собственный символ Crashlytics в Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как загрузить собственный символ Crashlytics в Android?

Сообщение Anonymous »

Я применяю к проекту сбойную аналитику Firebase.
Разрабатываемые нами проекты включают приложения и SDK.
SDK содержит движок. so.
Чтобы избежать чередования, мы реализовали это следующим образом.

Код: Выделить всё

packagingOptions {
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "*/armeabi-v7a/*.so"

jniLibs {
useLegacyPackaging = true
}
}
После создания приложения aar для SDK в приложении, когда я проверил файл engine.so внутри,

Код: Выделить всё

$ FILE engine.so
engine.so: ELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, with debug_info, not stripped
Я подтвердил, что он содержит debug_info.
После применения SDK к приложению оно было реализовано, как показано ниже, для применения сбоев.
build.gradle (проект)

Код: Выделить всё

plugins {
//...
id 'com.google.gms.google-services' version '4.4.2' apply false
id 'com.google.firebase.crashlytics' version '3.0.2' apply false
}
build.gradle (приложение)

Код: Выделить всё

plugins {
//...

id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
}

Код: Выделить всё

android {
buildTypes {
debug {
firebaseCrashlytics {
mappingFileUploadEnabled true
nativeSymbolUploadEnabled true
}
}
}

tasks.configureEach { task -> if (task.name.startsWith('assemble') && task.name.endsWith("Debug")) task.finalizedBy "uploadCrashlyticsSymbolFile"  + task.name.substring('assemble'.length()) }

dependencies {
// ...
implementation platform('com.google.firebase:firebase-bom:33.2.0')
implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-crashlytics-ndk'
}
Применение Crashlytics прошло успешно.
В случае сбоя это можно было увидеть в сбоях консоли Firebase.
Однако коллизия на engine.so не обнаружена и показывает неправильную трассировку стека.
crashlytics консоли Firebase

Код: Выделить всё

null pointer dereference: SIGSEGV  0x0000000000000000
#00 pc 0x6fa91b5b88
#01 pc 0x6fa91b5b6c
#02 pc 0x218964 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#03 pc 0x285ff0 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#04 pc 0x3dce0c libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#05 pc 0x3ea4c8 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#06 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#07 pc 0x3e5064 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#08 pc 0x760518 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#09 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#10 pc 0x77ebfc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#11 pc 0x203814 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#12 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#13 pc 0x2000fc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#14 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#15 pc 0x3dce0c libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#16 pc 0x3e4584 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#17 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#18 pc 0x800ba4 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#19 pc 0x3e5040 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#20 pc 0x760518 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#21 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#22 pc 0x76d498 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#23 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#24 pc 0x77f2a0 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#25 pc 0x77ebfc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#26 pc 0x203814 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#27 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#28 pc 0x2000fc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#29 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#30 pc 0x3dce0c libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#31 pc 0x2000fc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#32 pc 0x3e4584 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#33 pc 0xa16ffc libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
#34 pc 0x3e5040 libart.so (BuildId: 4752fd49b3f5a76fd788c235cf2fb143)
Stacktrace не найден для engine.so .
Я также пробовал загрузить символы с помощью Firebase cli.
app/build/intermidiates/merged_native_libs/appDebug/out/lib
Сжать папку
И

Код: Выделить всё

firebase crashlytics:symbols:upload --app="appId" path\lib.zip
Однако мне не удалось найти трассировку стека Crash для engine.so в Crashlytics.
Как загрузить символ ndk для Crashlytics?
Как загрузить символ ndk для Crashlytics?
p>
nativeSymbolUploadEnabled true
и ./gradlew :app:assembleAppDebug uploadCrashlyticsSymbolFileAppDebug
и Firebase CLI
firebase crashlytics:symbols:upload --app="appId" path/lib.zip

Подробнее здесь: https://stackoverflow.com/questions/791 ... in-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»