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.

:app:generateCrashlyticsSymbolFileRelease - Specified path for unstripped native libs is not a directory

See original GitHub issue

Describe your environment

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0-beta02'
        classpath 'com.google.firebase:firebase-appdistribution-gradle:1.3.1'
    }

Describe the problem

Steps to reproduce:

When I try to run: ./gradlew clean assembleRelease uploadCrashlyticsSymbolFileRelease

I get next error:

Execution failed for task ':app:generateCrashlyticsSymbolFileRelease'.
> java.io.IOException: Specified path for unstripped native libs is not a directory: /Users/martin/repos/example-app-android/app/obj

If I manually move all my NDK libs to ./app folder I get the same error with different path:

Execution failed for task ':app:generateCrashlyticsSymbolFileRelease'.
> java.io.IOException: Specified path for stripped native libs is not a directory: /Users/martin/repos/example-app-android/app/build/intermediates/transforms/stripDebugSymbol/release

In this second case the build command sometimes fails, sometimes not.

This issue started to appear after I moved from Fabric Crashlytics plugin to Firebase Crashlytics plugin. In the Fabric case, I had the option to define: androidNdkOut and androidNdkLibsOut paths. Is that missing in the new Firebase plugin?

Relevant Code:

Old code example:

    crashlytics {
        enableNdk true
        androidNdkOut "$buildDir/ndklibs/obj"
        androidNdkLibsOut "$buildDir/ndklibs/libs"
    }

New Code example:

            firebaseCrashlytics {
                nativeSymbolUploadEnabled true

            }

In the Firebase case, I didn’t specify any paths.

To collect all ndk libs I use following code:

    configurations {
        ndkzip
    }

    task setupNdklibs(type: Sync) {
        dependsOn configurations.ndkzip
        from {
            configurations.ndkzip.collect { zipTree(it) }
        }
        into "$buildDir/ndklibs/"
    }
    build.finalizedBy setupNdklibs

and executing ./gradlew build

Issue Analytics

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

github_iconTop GitHub Comments

4reactions
mrichardscommented, Feb 11, 2020

In the new Firebase Crashlytics plugin, the androidNdkOut and androidNdkLibsOut properties have been changed to strippedNativeLibsDir and unstrippedNativeLibsDir, and should be declared in firebaseCrashlytics within the variant block, where you declared nativeSymbolUploadEnabled true.

Those options aren’t currently documented, though they will be shortly.

2reactions
vfishvcommented, Jun 22, 2020

😠 firebase-crashlytics-gradle:2.2.0 can NOT build but 2.1.1 works good

Crashlytics could not determine stripped/unstripped native library directories for project ‘:app’, variant Release. These are required for generating symbol files when NDK build tasks cannot be automatically inferred. Please specify strippedNativeLibsDir and unstrippedNativeLibsDir in the firebaseCrashlytics extension.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Specified path for unstripped native libs is not a directory
This issue started to appear after I moved from Fabric Crashlytics plugin to Firebase Crashlytics plugin. In the Fabric case, I had the...
Read more >
Specified path for unstripped native libs is not a directory #1198
This issue started to appear after I moved from Fabric Crashlytics plugin to Firebase Crashlytics plugin. In the Firebase case, I had the...
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