-
Notifications
You must be signed in to change notification settings - Fork 578
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
:app:generateCrashlyticsSymbolFileRelease - Specified path for unstripped native libs is not a directory #1199
Comments
I found a few problems with this issue:
|
In the new Firebase Crashlytics plugin, the Those options aren't currently documented, though they will be shortly. |
@mrichards thanks for the info, I will test it and let you know. |
@mrichards I tested and I get the same issues, but now the problem is with the path:
It looks like this task prepends
I solved my problem using relative paths:
But it looks like a issue with the |
Glad you got it working! I'll take a look at the absolute path issue. |
Hello, thanks for your answer @mrichards
this is my output of
|
Hello, thanks for your answer @mrichards |
I'm trying to use this myself for the first time and seeing this same error. I don't do anything special with cmake, I don't override any default directories, and I didn't specify any androidNdkOut parameters with the Fabric version.
Any clues on how I can debug this? Do I need to specify the xNativeLibsDir params? If so, with what values? FYI "sport" and "prod" are flavor dimensions, and "storeRelease" is the buildType. Note: the app has a number of 3rd party libraries and a module that include includes libraries, but I don't have debug variants of them to specify unstripped libs. |
Thanks to mrichards on the new operatives. I had this issue today after doing some housekeeping (deleting old obj folders / etc) within my app module. My app module does not have any (direct) native libraries within it -- I just have a couple jars I need packaged and keep them in app/libs.
|
Since both properties are relative paths to 'app' dir, how should I reference other modules? For example, my native libs are in ':external' which sits on the same leve as ':app' dir. |
Yup, i'm also interested. Let's say |
This is what I'm currently using. But cannot attest it's correct due to another bug (NPE thrown when trying to upload symbols).
|
@marius-bardan |
com.android.tools.build:gradle:3.5.3 |
will check yours |
@marius-bardan |
This issue is now intermittent for me. We use an Azure pipeline to build the app, so it's a fresh checkout and build every time on a clean environment with the same code. I just ran the pipeline 3 times in a row - first 2 failed with this error, 3rd time lucky. |
@darrentaft To clarify, the issue you're referring to is the original "Specified path for unstripped native libs is not a directory" issue? If so, I'd be interested to know more about your 3 runs of the pipeline. Is there anything different you observed in the third run that made it work? If you try to assemble and then upload symbols using manual Gradle tasks as a test, do you get the same error? What about if you make sure to manually clean between the |
@kevinkokomani comparing the build runs, one thing I can see is that the build tasks don't appear to run in the same order every time. These are the tasks executed in the final steps before failure, just after it has finished building the native library. On the build that succeeded:
Whereas on the build that failed:
See how the There are numerous points throughout the build where the execution order is different, so I don't know if any of them are relevant. As for changing the pipeline - could the random order maybe be caused by me building 2 variants at the same time? This is the command it runs:
|
Thanks for this info -- it might be worth a shot to run the assemble and the upload separately, at least as a test. We're aware of an issue that occurs where running the Do you get similar behavior with the varied order of the build steps if you explicitly wait for |
Thanks @kevinkokomani ... I've been running with this for over a week now, and since moving the upload to a separate task, the issue hasn't reoccurred. The upload task alone takes around 8 seconds, so it's not really having any impact on our build process - I'm happy enough with that. Cheers. |
Crashlytics Gradle plugin v2.2.0 will fix both the task ordering issue and the absolute path issue. These two fixes together should make it easier to get symbols uploaded for 3rd party libraries using as described here. We'll update this issue when the release goes live within the next couple of weeks. |
Crashlytics Gradle plugin 2.2.0 is now live! Absolute paths should now work as expected. If you've previously had trouble getting symbols uploaded for 3rd party native libs or non-standard NDK builds, please take a look at the doc linked above and give it another shot. We cleaned up the task configuration for |
@mrichards — Still doesn't seem quite right: with the 2.2.0 plugin, now get "Crashlytics could not find NDK build tasks on which to depend. You many need to manually enforce task dependencies for generateCrashlyticsSymbolFileFlavorAmazonRelease" message. |
@mrichards Even after updating the crashlytics plugin to 2.2.0, I get the same error. It still assumes the given path is relative path. If this was expected to work, how do you differentiate whether the given path is absolute or relative? |
😠 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. |
Describe your environment
Describe the problem
Steps to reproduce:
When I try to run:
./gradlew clean assembleRelease uploadCrashlyticsSymbolFileRelease
I get next error:
If I manually move all my NDK libs to
./app
folder I get the same error with different path: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
andandroidNdkLibsOut
paths.Is that missing in the new Firebase plugin?
Relevant Code:
Old code example:
New Code example:
In the Firebase case, I didn't specify any paths.
To collect all ndk libs I use following code:
and executing
./gradlew build
The text was updated successfully, but these errors were encountered: