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

Trouble adding Google Services library on Android project with gRPC library #6217

Closed
benz93chung opened this issue Sep 30, 2019 · 12 comments · Fixed by #6318
Closed

Trouble adding Google Services library on Android project with gRPC library #6217

benz93chung opened this issue Sep 30, 2019 · 12 comments · Fixed by #6318
Assignees
Milestone

Comments

@benz93chung
Copy link

I was trying to add Firebase Analytics into my Android project with gRPC library, in which Google Services library is also to be added.

By simply setting up the app from the Firebase console, upon syncing I have gotten the following error:

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[2.3.2
,2.3.3]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: io.perfmark:perfmark-api:0.16.0 -> com.google.errorprone:error_prone_annotations@[2.3.2,2.3.3], but 
error_prone_annotations version was 2.3.2.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto io.grpc:grpc-api@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-protobuf-lite@1.22.1
-- Project 'app' depends onto io.perfmark:perfmark-api@{strictly 0.16.0}
-- Project 'app' depends onto io.grpc:grpc-okhttp@1.22.1
-- Project 'app' depends onto io.grpc:grpc-stub@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-core@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-okhttp@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-protobuf-lite@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-stub@1.22.1
-- Project 'app' depends onto com.google.errorprone:error_prone_annotations@{strictly 2.3.2}

For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
uild.gradle file.

I am using gRPC version 1.22.1.
Downgrading to 1.21.1 results in no such errors showing up again, but it is more of a workaround than a solution.
The problem occurs from 1.22.0 onwards to the latest version.

My hunch on why this happens is because of version disparity at errorprone at line 34 and line 188.
https://github.com/grpc/grpc-java/blob/v1.22.x/build.gradle

gRPC version:

1.22.1

Operating system:

macOS 10.14.6

Reproduction steps:

  1. Clone this project and open in Android Studio:
    https://github.com/benz93chung/GrpcMvvm
  2. Set up a Firebase project, add Android app, and follow instructions (down the line the google-services.json and dependencies at the gradle files are being added)
  3. Sync

Full stacktrace:

org.gradle.api.internal.tasks.TaskDependencyResolveException: Could not determine the dependencies of task ':app:extractIncludeDebugProto'.
	at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:68)
	at org.gradle.execution.plan.TaskDependencyResolver.resolveDependenciesFor(TaskDependencyResolver.java:46)
	at org.gradle.execution.plan.LocalTaskNode.getDependencies(LocalTaskNode.java:111)
	at org.gradle.execution.plan.LocalTaskNode.resolveDependencies(LocalTaskNode.java:79)
	at org.gradle.execution.plan.DefaultExecutionPlan.addEntryTasks(DefaultExecutionPlan.java:177)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.addEntryTasks(DefaultTaskExecutionGraph.java:139)
	at org.gradle.execution.TaskNameResolvingBuildConfigurationAction.configure(TaskNameResolvingBuildConfigurationAction.java:48)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:57)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:63)
	at org.gradle.execution.DefaultTasksBuildExecutionAction.configure(DefaultTasksBuildExecutionAction.java:44)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:57)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter$2.proceed(DefaultBuildConfigurationActionExecuter.java:63)
	at org.gradle.execution.ExcludedTaskFilteringBuildConfigurationAction.configure(ExcludedTaskFilteringBuildConfigurationAction.java:47)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.configure(DefaultBuildConfigurationActionExecuter.java:57)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.access$200(DefaultBuildConfigurationActionExecuter.java:26)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter$1.run(DefaultBuildConfigurationActionExecuter.java:43)
	at org.gradle.internal.Factories$1.create(Factories.java:25)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:132)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:124)
	at org.gradle.execution.DefaultBuildConfigurationActionExecuter.select(DefaultBuildConfigurationActionExecuter.java:39)
	at org.gradle.initialization.DefaultGradleLauncher$CalculateTaskGraph.run(DefaultGradleLauncher.java:333)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
	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.run(DefaultBuildOperationExecutor.java:92)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.initialization.DefaultGradleLauncher.constructTaskGraph(DefaultGradleLauncher.java:218)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
	at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
	at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
	at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
	at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
	at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
	at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
	at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
	at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
	at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:54)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
	at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
	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.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
	at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
	at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
	at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
	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:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.gradle.api.GradleException: In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[2.3.2
,2.3.3]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: io.perfmark:perfmark-api:0.16.0 -> com.google.errorprone:error_prone_annotations@[2.3.2,2.3.3], but 
error_prone_annotations version was 2.3.2.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto io.grpc:grpc-api@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-protobuf-lite@1.22.1
-- Project 'app' depends onto io.perfmark:perfmark-api@{strictly 0.16.0}
-- Project 'app' depends onto io.grpc:grpc-okhttp@1.22.1
-- Project 'app' depends onto io.grpc:grpc-stub@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-core@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-okhttp@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-protobuf-lite@{strictly 1.22.1}
-- Project 'app' depends onto io.grpc:grpc-stub@1.22.1
-- Project 'app' depends onto com.google.errorprone:error_prone_annotations@{strictly 2.3.2}

For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
uild.gradle file.
	at com.google.android.gms.dependencies.DependencyInspector.afterResolve(DependencyInspector.java:229)
	at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:376)
	at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:358)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:346)
	at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:333)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
	at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:324)
	at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:234)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
	at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy26.afterResolve(Unknown Source)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$7.run(DefaultConfiguration.java:594)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
	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.run(DefaultBuildOperationExecutor.java:92)
	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:576)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$600(DefaultConfiguration.java:138)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$6.run(DefaultConfiguration.java:556)
	at org.gradle.api.internal.project.DefaultProjectStateRegistry$SafeExclusiveLockImpl.withLock(DefaultProjectStateRegistry.java:244)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java:552)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:547)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphForBuildDependenciesIfRequired(DefaultConfiguration.java:697)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$3700(DefaultConfiguration.java:138)
	at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationTaskDependency.visitDependencies(DefaultConfiguration.java:1656)
	at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:106)
	at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmptyEdges.getNodeValues(CachingDirectedGraphWalker.java:211)
	at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:121)
	at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:73)
	at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.getDependencies(CachingTaskDependencyResolveContext.java:66)
	... 109 more


@dapengzhang0
Copy link
Member

dapengzhang0 commented Sep 30, 2019

We build your repo https://github.com/benz93chung/GrpcMvvm locally (not with Firebase console) and it was successful.

Can you provide any reference to how to do the following?

2. Set up a Firebase project, add Android app, and follow instructions 
   (down the line the google-services.json and dependencies at the gradle
   files are being added)
3. Sync

@dapengzhang0
Copy link
Member

dapengzhang0 commented Sep 30, 2019

Now I figured out how to add a Firebase project. I did reproduce the issue. Then I try to add

implementation 'com.google.errorprone:error_prone_annotations:2.3.2'

with the explicit version. Then sync. It seems to work now.
EDIT: this does not work. See other workarounds in later comments.

Screenshot from 2019-09-30 11-25-42

@creamsoup creamsoup added this to the Unscheduled milestone Sep 30, 2019
@benz93chung
Copy link
Author

Now I figured out how to add a Firebase project. I did reproduce the issue. Then I try to add

implementation 'com.google.errorprone:error_prone_annotations:2.3.2'

with the explicit version. Then sync. It seems to work now.

Screenshot from 2019-09-30 11-25-42

Thanks for attending to the issue. However I am still having trouble with syncing even after explicitly adding errorprone as dependency. Have you applied the google services plugin at the end of the gradle file though?

Screenshot 2019-10-01 at 3 16 18 PM

To provide a bit more info if it ever helps, I am using JDK 11.0.4 in my environment.

In the meantime, I am finding out if it's just me since it worked for you.

@dapengzhang0
Copy link
Member

Have you applied the google services plugin at the end of the gradle file though?

Yes, I added all the lines to app/gradle.build file as instructed while adding the app to firebase project. However, I found that my workaround is not reliable, most time it still fails. I'll take more look into the issue.

@dapengzhang0
Copy link
Member

Now I make a dirty hack, seems to work better. I don't know how a clean workaround would be yet.

    // gRPC
    implementation ("io.grpc:grpc-okhttp:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ("io.grpc:grpc-protobuf-lite:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ("io.grpc:grpc-stub:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ('io.perfmark:perfmark-api:0.16.0') {
        exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
    }

Screenshot from 2019-10-01 12-17-39

@benz93chung
Copy link
Author

Now I make a dirty hack, seems to work better. I don't know how a clean workaround would be yet.

    // gRPC
    implementation ("io.grpc:grpc-okhttp:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ("io.grpc:grpc-protobuf-lite:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ("io.grpc:grpc-stub:$grpc_version") {
        exclude group: 'io.perfmark', module: 'perfmark-api'
    }
    implementation ('io.perfmark:perfmark-api:0.16.0') {
        exclude group: 'com.google.errorprone', module: 'error_prone_annotations'
    }

Screenshot from 2019-10-01 12-17-39

Thank you once again. For now, the dirty hack works.

Screenshot 2019-10-03 at 2 17 54 PM (2)

@dapengzhang0
Copy link
Member

Perfmark just had new release 0.19.0 which fixed its dependency range issue. Now we can have a much simpler workaround:

// Explicitly depend on perfmark 0.19.0
implementation "io.perfmark:perfmark-api:0.19.0"

dapengzhang0 added a commit that referenced this issue Oct 22, 2019
dapengzhang0 added a commit to dapengzhang0/grpc-java that referenced this issue Oct 23, 2019
dapengzhang0 added a commit to dapengzhang0/grpc-java that referenced this issue Oct 23, 2019
dapengzhang0 added a commit to dapengzhang0/grpc-java that referenced this issue Oct 23, 2019
dapengzhang0 added a commit that referenced this issue Oct 23, 2019
@bubenheimer
Copy link

The 1.24.1 release comments suggest that this should've been in 1.24.1, but the grpc-core POM shows 0.17.0

@dapengzhang0
Copy link
Member

dapengzhang0 commented Nov 4, 2019

Thanks @bubenheimer for pointing it out.

@creamsoup , the 1.24.1 release should mention the known issue and the workaround, instead of Dependencies Bump perfmark to 0.19.0

@creamsoup
Copy link
Contributor

@dapengzhang0, yes i'll add that note. I thought it was back-ported since the 1.24.1 was released later than the other 2 patches.

@tiger1990
Copy link

  • What went wrong:
    Could not determine the dependencies of task ':app:compilePlaystoreQaAmStageCBSJavaWithJavac'.

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[1.25.
0]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: io.grpc:grpc-auth:1.25.0 -> io.grpc:grpc-api@[1.25.0], but grpc-api version was 1.26.0.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends onto io.grpc:grpc-core@{strictly 1.26.0}
-- Project 'app' depends onto io.grpc:grpc-okhttp@1.26.0
-- Project 'app' depends onto com.google.cloud:google-cloud-dialogflow@0.120.0
-- Project 'app' depends onto io.grpc:grpc-alts@{strictly 1.25.0}
-- Project 'app' depends onto io.grpc:grpc-api@{strictly 1.26.0}
-- Project 'app' depends onto io.grpc:grpc-okhttp@{strictly 1.26.0}
-- Project 'app' depends onto io.grpc:grpc-stub@{strictly 1.26.0}
-- Project 'app' depends onto io.grpc:grpc-grpclb@{strictly 1.25.0}
-- Project 'app' depends onto com.google.cloud:google-cloud-dialogflow@{strictly 0.120.0}
-- Project 'app' depends onto io.grpc:grpc-protobuf-lite@{strictly 1.26.0}
-- Project 'app' depends onto com.google.api:gax-grpc@{strictly 1.52.0}
-- Project 'app' depends onto io.grpc:grpc-auth@{strictly 1.25.0}
-- Project 'app' depends onto io.grpc:grpc-protobuf@{strictly 1.26.0}

For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b
uild.gradle file.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

@tiger1990
Copy link

tiger1990 commented Jan 22, 2020

I found solution
just update in apps build.gradle

// Java V2
    implementation 'com.google.cloud:google-cloud-dialogflow:0.120.0'
    // for Remote Procedure Call to avoid "No functional channel service provider found" error while //creating SessionsClient
    implementation 'io.grpc:grpc-okhttp:1.28.0'

and in root build.gradle
update playservice plugin version
classpath 'com.google.gms:google-services:4.3.3'

@lock lock bot locked as resolved and limited conversation to collaborators Apr 25, 2020
dfawley pushed a commit to dfawley/grpc-java that referenced this issue Jan 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants