Search

How to Fix “This App Bundle Contains Native Code, and You've Not Uploaded Debug Symbols” in Google Play Console

How to Fix Native Debug Symbols Warning in Google Play Console

How to Fix “This App Bundle Contains Native Code, and You've Not Uploaded Debug Symbols” Warning in Google Play Console

While uploading your Android app to Google Play Console, you may see this warning:

This App Bundle contains native code, and you've not uploaded debug symbols.
We recommend you upload a symbol file to make your crashes and ANRs easier to analyze and debug.
Important: This is usually a warning, not an error. Your app can still be published successfully.

What Does This Warning Mean?

Android apps are mainly built using:

  • Kotlin
  • Java

But some libraries use:

  • C
  • C++

These are called Native Libraries.

Native libraries are compiled into .so files.

libavcodec.so
libffmpeg.so
libxyz.so
  

When your app crashes inside native code, Google Play Console cannot properly understand the crash unless debug symbols are uploaded.

What Are Debug Symbols?

Debug symbols are special files that help Google Play Console convert unreadable crash reports into readable crash details.

Without debug symbols:

#00 pc 00000000001a2f8c
#01 pc 00000000003bc920
  

With debug symbols:

compressVideo()
VideoCompressor.cpp line 245
  

This makes debugging much easier.

Why Does This Warning Appear?

This warning appears when your app includes native .so files.

Common Libraries That Use Native Code

Library / Feature Uses Native Code?
FFmpeg Yes
Media3 Transformer Sometimes
OpenCV Yes
TensorFlow Lite Yes
Video Compression SDKs Yes

If you are building:

  • Video Compressor App
  • Video Editor App
  • Camera App
  • AI App
  • Game App

then this warning is very common.

How to Check if Your App Contains Native Code

Open your APK or AAB file and check for folders like:

lib/arm64-v8a/
lib/armeabi-v7a/
  

If you see .so files inside these folders, your app contains native code.

How to Fix This Warning

Method 1 — Upload Native Debug Symbols (Recommended)

Step 1: Add Debug Symbol Configuration

Add the following inside your app-level build.gradle file:

android {
    buildTypes {
        release {
            ndk {
                debugSymbolLevel 'FULL'
            }
        }
    }
}
  

Alternative Option

debugSymbolLevel 'SYMBOL_TABLE'
  
Option Size Information
FULL Large Complete debugging information
SYMBOL_TABLE Smaller Basic crash decoding
Recommended Option: FULL

Step 2: Generate Signed Bundle

Generate your release bundle:

Build → Generate Signed Bundle / APK
  

After the build completes, go to:

app/build/outputs/native-debug-symbols/release/
  

You will find:

native-debug-symbols.zip
  

Step 3: Upload Symbols to Google Play Console

Go to:

Google Play Console
→ Your App
→ App Bundle Explorer
→ Select Release
→ Upload Debug Symbols
  

Upload:

native-debug-symbols.zip
  

Method 2 — If Using CMake

If your app uses CMake, add:

android {
    buildTypes {
        release {
            ndk {
                debugSymbolLevel 'FULL'
            }
        }
    }
}
  

Also add:

packagingOptions {
    doNotStrip "**/*.so"
}
  

Method 3 — Ignore the Warning

You can ignore this warning if:

  • Your app rarely crashes
  • You don't need native crash reports
  • The warning comes from third-party libraries

Your app will still publish successfully.

Example Scenario

Suppose your app uses:

implementation "androidx.media3:media3-transformer"
  

or:

implementation "com.arthenica:ffmpeg-kit"
  

These libraries include native .so files, so Google Play Console shows this warning.

Does This Affect Users?

No.

  • Users can install the app normally
  • The app works normally
  • Users never see this warning

Does This Affect App Approval?

No.

Google Play usually still approves the app.

This warning only helps developers improve crash debugging.

Best Practice Recommendation

For production apps, always upload debug symbols.

Especially for:

  • Video Apps
  • Camera Apps
  • FFmpeg Apps
  • AI Apps
  • Games

Full Recommended Configuration

android {
    buildTypes {
        release {

            minifyEnabled true

            ndk {
                debugSymbolLevel 'FULL'
            }
        }
    }
}
  

Using Firebase Crashlytics

If you use Firebase Crashlytics with NDK support:

plugins {
    id 'com.google.firebase.crashlytics'
}
  

Add:

firebaseCrashlytics {
    nativeSymbolUploadEnabled true
}
  

This automatically uploads native symbols.

Final Summary

Question Answer
Why does this warning appear? Your app contains native .so files
Is it an error? No, only a warning
Can the app still be published? Yes
Should you fix it? Yes, recommended
Main Fix? Upload native debug symbols
Where are symbols generated? build/outputs/native-debug-symbols/
Where to upload? Play Console → App Bundle Explorer

Simple Beginner Explanation

Think of debug symbols like a translation file for crashes.

Without symbols:

Crash at memory address 0x000123
  

With symbols:

Crash in compressVideo() at line 45
  

That is why Google recommends uploading debug symbols.

Post a Comment

NextGen Digital Welcome to WhatsApp chat
Howdy! How can we help you today?
Type here...