Task 'uploadCrashlyticsSymbolFile<BuildVariant>' fails
See original GitHub issue[READ] Step 1: Are you in the right place?
Issues filed here should be about bugs in the code in this repository. If you have a general question, need help debugging, or fall into some other category use one of these other channels:
- For general technical questions, post a question on StackOverflow with the firebase tag.
- For general Firebase discussion, use the firebase-talk google group.
- For help troubleshooting your application that does not fall under one of the above categories, reach out to the personalized Firebase support channel.
[REQUIRED] Step 2: Describe your environment
- Android Studio version: 4.1.2, platform: Windows 10 Pro ‘com.android.tools.build:gradle:4.1.2’ ‘com.google.gms:google-services:4.3.5’
- Firebase Component: Firebase Crashlytics NDK
- Component version: firebase-crashlytics-gradle:2.5.0 (or 2.5.1) firebase-crashlytics:17.3.1 (also tried 17.x.x) firebase-crashlytics-ndk:17.3.1 (also tried 17.x.x) firebase-analytics:18.0.2
- externalNativeBuild type: cmake or ndk-build
[REQUIRED] Step 3: Describe the problem
Task generateCrashlyticsSymbolFile[BuildVariant] fails with exception:
Execution failed for task ':app:generateCrashlyticsSymbolFileDebug'.
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:generateCrashlyticsSymbolFileDebug'.
at org.gradle.execution.plan.LocalTaskNode.resolveMutations(LocalTaskNode.java:249)
at org.gradle.execution.plan.DefaultExecutionPlan.getResolvedMutationInfo(DefaultExecutionPlan.java:608)
at org.gradle.execution.plan.DefaultExecutionPlan.selectNext(DefaultExecutionPlan.java:534)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$executeNextNode$1(DefaultPlanExecutor.java:166)
at org.gradle.internal.resources.DefaultResourceLockCoordinationService.withStateLock(DefaultResourceLockCoordinationService.java:45)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:155)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: org.gradle.api.UncheckedIOException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at org.gradle.execution.plan.LocalTaskNode.canonicalizePath(LocalTaskNode.java:284)
at org.gradle.execution.plan.LocalTaskNode.access$300(LocalTaskNode.java:52)
at org.gradle.execution.plan.LocalTaskNode$1.lambda$visitOutputFileProperty$0(LocalTaskNode.java:217)
at org.gradle.api.internal.tasks.properties.FileParameterUtils.resolveOutputFilePropertySpecs(FileParameterUtils.java:127)
at org.gradle.execution.plan.LocalTaskNode$1.lambda$visitOutputFileProperty$1(LocalTaskNode.java:207)
at org.gradle.execution.plan.LocalTaskNode.withDeadlockHandling(LocalTaskNode.java:290)
at org.gradle.execution.plan.LocalTaskNode.access$000(LocalTaskNode.java:52)
at org.gradle.execution.plan.LocalTaskNode$1.visitOutputFileProperty(LocalTaskNode.java:203)
at org.gradle.api.internal.tasks.properties.annotations.AbstractOutputPropertyAnnotationHandler.visitPropertyValue(AbstractOutputPropertyAnnotationHandler.java:50)
at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode.visitProperties(AbstractNestedRuntimeBeanNode.java:56)
at org.gradle.api.internal.tasks.properties.bean.RootRuntimeBeanNode.visitNode(RootRuntimeBeanNode.java:32)
at org.gradle.api.internal.tasks.properties.DefaultPropertyWalker.visitProperties(DefaultPropertyWalker.java:41)
at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:44)
at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:34)
at org.gradle.execution.plan.LocalTaskNode.resolveMutations(LocalTaskNode.java:200)
at org.gradle.execution.plan.DefaultExecutionPlan.getResolvedMutationInfo(DefaultExecutionPlan.java:608)
at org.gradle.execution.plan.DefaultExecutionPlan.selectNext(DefaultExecutionPlan.java:534)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$executeNextNode$1(DefaultPlanExecutor.java:166)
at org.gradle.internal.resources.DefaultResourceLockCoordinationService.withStateLock(DefaultResourceLockCoordinationService.java:45)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:155)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at org.gradle.execution.plan.LocalTaskNode.canonicalizePath(LocalTaskNode.java:279)
... 23 more
The issue is observed only with the new versions of crashlytics-gradle plugin (v2.5.0 and v2.5.1). It works as expected with older plugin versions (e.g. 2.4.1).
Expected behavior: task ‘uploadCrashlyticsSymbolFile[BuildVariant]’ generates and uploads native symbols to crashlytics servers.
Steps to reproduce:
- Create a new template project “Native C++”
- Add Firebase analytics, crashlytics, crashlytics-ndk (using Assistant or manually),
- Add google-services.json (create/connect to a Firebase project)
- Set crashlytics gradle plugin version to firebase-crashlytics-gradle:2.5.0 (or 2.5.1)
- Add the following to a relevant build variant (or to defaultConfig):
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
- build project
- run task ‘generateCrashlyticsSymbolFile[BuildVariant]’ or ‘uploadCrashlyticsSymbolFile[BuildVariant]’
- the task will fail with
Task generateCrashlyticsSymbolFile<BuildVariant> fails with exception:
Execution failed for task ':app:generateCrashlyticsSymbolFile<BuildVariant>'.
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect
It seems there is a bug in firebase-crashlytics-gradle plugin. Wondering if you guys are doing any QA testing before releasing updates?
Relevant Code:
AS project is available upon request.
// Top-level build script.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.2"
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
// app build script
plugins {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.firebase.crashlytics'
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.test"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
firebaseCrashlytics {
nativeSymbolUploadEnabled true
}
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.10.2"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
ndkVersion = "21.4.7075529"
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-crashlytics:17.3.1'
implementation 'com.google.firebase:firebase-crashlytics-ndk:17.3.1'
implementation 'com.google.firebase:firebase-analytics:18.0.2'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}
Issue Analytics
- State:
- Created 3 years ago
- Comments:11 (4 by maintainers)
Top Results From Across the Web
Android Crashlytics - Unable to upload symbols - Stack Overflow
1 Answer 1 · Delete crashlytics.log file · Run symbol upload gradle task · Build and run app, run into test crash.
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 >After upgrading to Firebase Crashlytics 6.15.0, all crashes are ...
I updated the upload-symbols script, and removed all Fabric initialization, keys, etc. Each build variant has its own GoogleServices-Info-{$variant}.plist file, ...
Read more >Build and run your app - Android Developers
Learn how to quickly build and run your app on the Android emulator or a physical device.
Read more >Setting up Firebase Crashlytics NDK | ProAndroidDev
You're familiar and are already using Firebase Crashlytics SDK within ... problem of uploading Crashlytics symbols after each assemble task, ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Confirmed - it works fine with v2.5.2 - thank you!
v2.5.2 of the Crashlytics plugin was released last Thursday and should resolve the issue. Please let us know if your problem persists!