Closed
Description
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