Skip to content
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

Directory '/Users/project/app/build/extracted-include-protos/main' specified for property '$3' does not exist. #311

Closed
wann2 opened this issue Apr 19, 2019 · 19 comments
Assignees

Comments

@wann2
Copy link

wann2 commented Apr 19, 2019

I use Mac OS.
After I update Android Studio 3.4, the following error happens. I can not build the project.

Directory '/Users/project/app/build/extracted-include-protos/main' specified for property '$3' does not exist.

How can I fix it?

Bt reference this is "build.gradle" file content.

buildscript {
   dependencies {
      classpath 'com.android.tools.build:gradle:3.4.0'
   }
}

"gradle-wrapper.properties" has the following.

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip

When I build the project, the following error happen.

org.gradle.api.tasks.TaskValidationException: Some problems were found with the configuration of task ':app:generateProdDebugProto'.
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.report(ValidatingTaskExecuter.java:66)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:53)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
	at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:745)
Cause 1: org.gradle.api.InvalidUserDataException: Directory '/Users/project/app/build/extracted-include-protos/main' specified for property '$3' does not exist.
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.report(ValidatingTaskExecuter.java:63)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:53)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
	at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:745)
Cause 2: org.gradle.api.InvalidUserDataException: Directory '/Users/project/app/build/extracted-include-protos/prod' specified for property '$6' does not exist.
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.report(ValidatingTaskExecuter.java:63)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:53)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
	at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
	at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
	at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
	at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:745)
@zhangkun83
Copy link
Collaborator

What is the protobuf-gradle-plugin version you are using? Supposing it was working with an older Android plugin version, what was that version?

@wann2
Copy link
Author

wann2 commented Apr 20, 2019

Thanks for the answer.
I am using the following in "build.gradle".

buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.0' 
        classpath 'com.google.gms:google-services:4.2.0' 
        classpath "io.realm:realm-gradle-plugin:3.7.2" 
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.6' 
    }
}

@zhangkun83
Copy link
Collaborator

Have you tried upgrading protobuf-gradle-plugin to 0.8.8? Your issue looks like #253 which is fixed in 0.8.8.

@bogdandrutu
Copy link

I get the same issue, did not modify anything in the past week on my config, just did a ./gradlew clean today.

buildscript {
    repositories {
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.8"
    }
}

protobuf {
    protoc {
        // The artifact spec for the Protobuf Compiler
        artifact = "com.google.protobuf:protoc:${protocVersion}"
    }
    plugins {
        grpc {
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
    }
    generateProtoTasks {
        all()*.plugins {
            grpc {}
        }
        ofSourceSet('main')
    }
}

@bogdandrutu
Copy link

Error is this:

> Task :opentelemetry-sdk:generateProto FAILED

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':opentelemetry-sdk:generateProto'.
> Directory '/usr/local/google/home/bdrutu/github/opentelemetry-java/sdk/build/extracted-protos/main' specified for property '$3' does not exist.

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

Some extracted protos seem to be in extracted-include-protos:

ls sdk/build
extracted-include-protos

@devhci
Copy link

devhci commented Jun 7, 2019

Any update on this?

@h4ste
Copy link

h4ste commented Jun 11, 2019

Same issue using Gradle 5.4.1 and plugin id "com.google.protobuf" version "0.8.8"

@voidzcy
Copy link
Collaborator

voidzcy commented Jun 14, 2019

@h4ste Can you post more details (e.g., what your build script look like? Is it for Android? Does the directory path really exist in your filesystem)? It would be great if you can provide something that I can reproduce the issue. Thanks.

@h4ste
Copy link

h4ste commented Jun 17, 2019

@voidzcy This is not an android project.

My build script (without dependencies) looks like:

plugins {
  id 'java'
  id 'scala'
  // Allows gradle to automagically generate Java protobuf writers/readers -- needed for TensorFlow
  // example format
  id "com.google.protobuf" version "0.8.8"
}

protobuf {
  // Configure the protoc executable
  protoc {
    // Download from repositories
    artifact = 'com.google.protobuf:protoc:3.7.0'
  }
}

version '0.1-SNAPSHOT'

compileJava {
  sourceCompatibility = 1.8
  targetCompatibility = 1.8
  options.compilerArgs += ["-proc:none"]
}

repositories {
  jcenter()

  google()

  maven {
    url 'https://metamap.nlm.nih.gov/maven2/'
  }
  maven {
    url 'https://jitpack.io'
  }
}

The error I get is:

Directory '[path/to/project]/build/extracted-protos/main' specified for property '$3' does not exist.

However, the build directory does not include an 'extracted-protos' folder:

$ ls -1 [path/to/project]/build/
classes
extracted-include-protos
generated
libs
resources
tmp

My protobuf files live under [path/to/project]/src/main/proto.

@voidzcy
Copy link
Collaborator

voidzcy commented Jun 17, 2019

@wann2 @bogdandrutu @h4ste

Your build files look pretty straightforward and nothing seems to be wrong. I tried with @h4ste 's build script in Gradle 5.4.1 but did not get the issue reproduced.

For version 0.8.8:

The problem seems, when Gradle is configuring generateProtoTask, it does some input/output validation and will fail if the input directory does not exist. This is introduced in Gradle 5.0 (see related issue #253, also in Gradle 5.0 release note as well as its github tracking issue). I will not be surprised if this causes the failure as in version 0.8.8 we used inputs.dir() to add a directory as task inputs. But I didn't get the error (confusing 😵).

In version 0.8.9:

We recently made some changes in #317 and we changed to use inputs.files() for generateProtoTask's task inputs, which will resolve the path lazily and not cause failure for registering non-exist directories as task inputs. So what I believe is, if that was the place caused the error, version 0.8.9 should have just fixed that. Could you please try with release 0.8.9? (As a reminder, 0.8.9 is not in Gradle Plugins Portal yet, please do buildscript with repositories and dependencies as mentioned in README.md).

Also, if you still get the issue, could you please enable the info logging (by adding a gradle.properties file with org.gradle.logging.level=info in it under your project directory) and post the output?

@ryancerium
Copy link

If you manually create the missing directory you can get past this to the next bug.

@jpaulodit
Copy link

We tried to manually create the directory but at the extractProto tasks the created directory got deleted because it was thought to be stale. We somehow got passed it by upgrading to Gradle 5.4.1

@voidzcy
Copy link
Collaborator

voidzcy commented Jun 20, 2019

@ryancerium @jpaulodit Which release version are you using? Have you tried with 0.8.9?

@wann2
Copy link
Author

wann2 commented Jun 20, 2019

I changed like the below and it works.

build.gradle file:
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.8'

gradle-wrapper.properties file:
distributionUrl=https://services.gradle.org/distributions/gradle-5.1.1-all.zip

But I am still afraid to upgrade those version higher. it might happen the previous error.

@jpaulodit
Copy link

@voidzcy We're using 0.8.8. Haven't tried 0.8.9.

@voidzcy
Copy link
Collaborator

voidzcy commented Jun 21, 2019

v0.8.9 is now also available through the Gradle plugins {} DSL. So I would suggest to have a try if anyone is still encountering this issue (and hopefully let me know).

@saivenkat999
Copy link

@voidzcy I tried it with v0.8.9 and it works.....Thanks

@h4ste
Copy link

h4ste commented Jun 28, 2019

@voidzcy I can also confirm that with v0.8.9 my problems are resolved, thanks!

@cyrilnoah1
Copy link

@voidzcy, I too had faced the same issue, and updating to version 0.8.9 had fixed the problems.

Thank you.

@voidzcy voidzcy closed this as completed Dec 12, 2019
jamie-pate added a commit to jamie-pate/esp-idf-provisioning-android that referenced this issue Mar 29, 2020
New Android Studio 3.6.1 doesn't work with 0.8.9 or lower?
More about it here -
google/protobuf-gradle-plugin#311 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants