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.

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:closed
  • Created 3 years ago
  • Comments:11 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
vhoycommented, Mar 30, 2021

Confirmed - it works fine with v2.5.2 - thank you!

0reactions
mrichardscommented, Mar 29, 2021

v2.5.2 of the Crashlytics plugin was released last Thursday and should resolve the issue. Please let us know if your problem persists!

Read more comments on GitHub >

github_iconTop 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 >

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