KeepSafe/dexcount-gradle-plugin

I have an error: "Cannot convert relative path summary.csv to an absolute file. "

imtianx opened this issue · 6 comments

* What went wrong:
Execution failed for task ':app:generateAndroidDebugPackageTree'.
> A failure occurred while executing com.getkeepsafe.dexcount.treegen.workers.LegacyWorker
   > Cannot convert relative path summary.csv to an absolute file.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:generateAndroidDebugPackageTree'.

Caused by: java.lang.UnsupportedOperationException: Cannot convert relative path summary.csv to an absolute file.
	at org.gradle.api.internal.file.IdentityFileResolver.doResolve(IdentityFileResolver.java:45)
	at org.gradle.api.internal.file.AbstractFileResolver.resolve(AbstractFileResolver.java:73)
	at org.gradle.api.internal.file.AbstractFileResolver.resolve(AbstractFileResolver.java:52)
	at org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory.file(DefaultFilePropertyFactory.java:109)
	at org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDirectoryVar$3.mapValue(DefaultFilePropertyFactory.java:360)
	at org.gradle.api.internal.file.DefaultFilePropertyFactory$DefaultDirectoryVar$3.mapValue(DefaultFilePropertyFactory.java:357)
	at org.gradle.api.internal.provider.AbstractMappingProvider.get(AbstractMappingProvider.java:66)
	at com.getkeepsafe.dexcount.treegen.workers.BaseWorker.writeSummaryFile(BaseWorker.java:95)
	at com.getkeepsafe.dexcount.treegen.workers.BaseWorker.execute(BaseWorker.java:67)
	at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:50)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:47)
	at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:37)
	at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
	at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:37)
	at org.gradle.workers.internal.IsolatedClassloaderWorker.execute(IsolatedClassloaderWorker.java:49)
	at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.lambda$execute$0(IsolatedClassloaderWorkerFactory.java:55)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
	at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
	at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.execute(IsolatedClassloaderWorkerFactory.java:49)
	at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:200)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
	at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
	... 3 more

Thanks for the report. Can you please share:

  • what version of Gradle are you using
  • what version of Android Gradle Plugin are you using
  • the contents of your dexcount configuration block in build.gradle, if any

gradle: 6.1.1
Android Gradle: 4.0.0
Kotlin: 1.5.3

Config

  1. The project build.gradle:
 dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.30"
        // classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
    
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
  1. The module build.gradle:
apply plugin: 'com.getkeepsafe.dexcount

Thanks. I can reproduce the issue with Gradle 6.1.1 and AGP 4.0.0, but don't understand where the breakdown is just yet. I suspect that if you upgrade to Gradle 6.5.1 at least, that the problem will go away. I'll try to take a look at this in more detail on Monday.

EDIT: Confirmed, upgrading Gradle to 6.5.1 resolves this issue. I'll still dig in as I can, but this is my recommendation for you right now.

Thanks, I have changed the gradle versions.

I'm glad that helped! Meanwhile, I'd like to keep this issue open to remind me to get this fixed.

I just pushed version 3.0.1 to Maven Central, containing this fix. It should be live within the next 10-15 minutes.