question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Native symbols crashlyticsUploadSymbols{variant} Crashlytics found no symbols for *.so skipping

See original GitHub issue

Same issue as in https://github.com/firebase/firebase-android-sdk/issues/1220

Environment

  • Android Studio version: 3.6.1
  • Gradle Version version: 5.4.1
  • Gradle Plugin version: 3.5.0
  • Fabric Plugin - 1.31.2
  • Fabric Crashlytics - 2.1.0
  • Fabric Crashlytics NDK - 2.10.1

Gradle plugin version 3.5.3 Gradle version 5.5

Issue

We added the NDK reporting functionality as mentioned in the docs and we do not see the native crashes being deobfuscated. The only two native libraries that we have are 3rd party (Crashlytics and Realm).

Crashlytics.log

Log is attached, sensitive information has been removed.

It looks like cSymGen is unable to find symboles for the .sos.

2020-03-05 11:11:23.406 [DEBUG] (Execution worker for ':' Thread 4) com.crashlytics  - Crashlytics found no symbols for /productionDebug/out/lib/armeabi-v7a/libcrashlytics.so, skipping.
2020-03-05 11:11:23.406 [DEBUG] (Execution worker for ':' Thread 4) com.crashlytics  - Generating cSYM for /productionDebug/out/lib/armeabi-v7a/librealm-jni.so
2020-03-05 11:11:23.418 [DEBUG] (Execution worker for ':' Thread 4) com.crashlytics  - Using ELF data for cSYM generation.
2020-03-05 11:11:23.418 [DEBUG] (Execution worker for ':' Thread 4) com.crashlytics  - Crashlytics found no symbols for /productionDebug/out/lib/armeabi-v7a/librealm-jni.so, skipping.

Relevant Code:

crashlytics {
    enableNdk = true
    androidNdkOut = "build/intermediates/merged_native_libs"
    androidNdkLibsOut = "build/intermediates/stripped_native_libs"
}

We had to configure the androidNdkOut and androidNdkLibsOut as shown above otherwise it would not sync using the default settings.

Another thing to note is that the Realm and Crashlytics dependencies are in their own library in the project. However the build directories for those libraries do not have any data.

We can’t upgrade to the new Firebase beta yet because it is in beta and also requires AndroidX. Is there anyway to make it work with the Fabric plugin? crashlytics.log

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:14 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
personshelldoncommented, Mar 10, 2020

@dsuresh-ap, as I know - yes, because release libraries and packages do not provide so libs with debug information, only final so lib with stripped debug symbols. If You want to do this You need to find sources for needed libs and build them directly in Your project, in that case Android Studio will generate debug so libs for upload and release libs with stripped debug information for Your apk.

For such cases as You described I use another solution - when error occurred, there is always obfuscated stack trace in Firebase Crashlytics. By stack address that printed in stack trace You can find point in lib where the error occurred by analyzing lib in IDA Pro or Ghidra application (disassembling native library). When problem found You need, again, sources of that lib to fix the problem, but You are using them as dependency. Vicious circle=)

0reactions
mrwillis21commented, Feb 2, 2021

Glad to hear it, thanks @dsuresh-ap !

Read more comments on GitHub >

github_iconTop Results From Across the Web

Crashlytics NDK: No symbols for crashes since update to new ...
Your setup looks correct so far, but it's possible your symbol files were never generated and uploaded to Crashlytics in the first place....
Read more >
Setting up Firebase Crashlytics NDK | ProAndroidDev
You're familiar and are already using Firebase Crashlytics SDK within your project (migrated from ... Step 2: Enable native symbol uploading.
Read more >
Get Android NDK crash reports | Firebase Crashlytics - Google
Set up automatic uploading of native symbols. So that the automatic symbol uploading task can find your symbol information, add the following to...
Read more >
Improvements to Crashlytics for Game Developers
We heard your feedback around symbol uploading for main applications and stand-alone libraries. And with the latest Crashlytics Gradle plugin, ...
Read more >
Deobfuscate or symbolicate crash stack traces - Google Help
If your app or game was developed using native code, like C++, you can upload a debug symbols file for each version of...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found