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

Firebase App Distribution Gradle Plugin 5.1.0: connectedDebugAndroidTest task fails #6634

Open
svenjacobs opened this issue Jan 20, 2025 · 9 comments
Assignees
Labels
api: appdistribution type: bug Something isn't working

Comments

@svenjacobs
Copy link

After upgrading the Firebase App Distribution Gradle plugin with ID com.google.firebase.appdistribution from version 5.0.0 to version 5.1.0 the task :app:connectedDebugAndroidTest fails with

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:connectedDebugAndroidTest'.
> io/grpc/InternalGlobalInterceptors

Firebase BOM 33.8.0
Android Gradle Plugin 8.8.0
Gradle 8.12 (also tested with 8.11.1)

@google-oss-bot
Copy link
Contributor

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

@svenjacobs
Copy link
Author

The changelog mentions "Updated dependencies to the latest versions". Might be related.

@svenjacobs
Copy link
Author

I wanted to look for myself what exactly has changed in 5.1.0 but it seems the plugin is not open source?
In this issue I found the following comment by @kaibolay

We're working on making the plugin open-source.

Are there any news regarding open sourcing the Gradle plugin?

@kaibolay
Copy link
Contributor

Are there any news regarding open sourcing the Gradle plugin?

Unfortunately not yet.

@ber4444
Copy link

ber4444 commented Jan 22, 2025

having the same issue when android tests

Caused by: java.lang.NoClassDefFoundError: io/grpc/InternalGlobalInterceptors  
at io.grpc.internal.ServerImplBuilder.getTracerFactories(ServerImplBuilder.java:252)   
at io.grpc.internal.ServerImplBuilder.build(ServerImplBuilder.java:243)
at io.grpc.internal.AbstractServerImplBuilder.build(AbstractServerImplBuilder.java:217)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer.<init>(UtpTestResultListenerServer.kt:101)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer.<init>(UtpTestResultListenerServer.kt)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer$Companion.startServer(UtpTestResultListenerServer.kt:74)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer$Companion.startServer$default(UtpTestResultListenerServer.kt:60)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner$1.invoke(UtpTestResultListenerServerRunner.kt:39)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner$1.invoke(UtpTestResultListenerServerRunner.kt:38)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner.<init>(UtpTestResultListenerServerRunner.kt:70)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner.<init>(UtpTestResultListenerServerRunner.kt:35)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt$runUtpTestSuiteAndWait$1.invoke(UtpTestUtils.kt:121)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt$runUtpTestSuiteAndWait$1.invoke(UtpTestUtils.kt:120)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt.runUtpTestSuiteAndWait(UtpTestUtils.kt:135)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt.runUtpTestSuiteAndWait$default(UtpTestUtils.kt:111)
at com.android.build.gradle.internal.testing.utp.UtpTestRunner$1.invoke(UtpTestRunner.kt:59)   
at com.android.build.gradle.internal.testing.utp.UtpTestRunner$1.invoke(UtpTestRunner.kt:58)   
at com.android.build.gradle.internal.testing.utp.UtpTestRunner.scheduleTests(UtpTestRunner.kt:138)     
at com.android.build.gradle.internal.testing.BaseTestRunner.runTests(BaseTestRunner.java:196)  
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.lambda$runTestsWithTestRunner$2(DeviceProviderInstrumentTestTask.java:478)
at com.android.builder.testing.api.DeviceProvider.use(DeviceProvider.java:55)  
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.runTestsWithTestRunner(DeviceProviderInstrumentTestTask.java:471)
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.run(DeviceProviderInstrumentTestTask.java:402)
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.doTaskAction(DeviceProviderInstrumentTestTask.java:305)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:60)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)   
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:78)     
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) 
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)  
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)  
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)  
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244) 
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) 
at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229) 
at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)
at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)     
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59) 
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56) 
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)  
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)
at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)
at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:46)

Caused by: java.lang.ClassNotFoundException: io.grpc.InternalGlobalInterceptors 
at org.gradle.internal.classloader.VisitableURLClassLoader$InstrumentingVisitableURLClassLoader.findClass(VisitableURLClassLoader.java:186)
at io.grpc.internal.ServerImplBuilder.getTracerFactories(ServerImplBuilder.java:252)    
at io.grpc.internal.ServerImplBuilder.build(ServerImplBuilder.java:243) 
at io.grpc.internal.AbstractServerImplBuilder.build(AbstractServerImplBuilder.java:217) 
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer.<init>(UtpTestResultListenerServer.kt:101)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer.<init>(UtpTestResultListenerServer.kt)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer$Companion.startServer(UtpTestResultListenerServer.kt:74)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServer$Companion.startServer$default(UtpTestResultListenerServer.kt:60)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner$1.invoke(UtpTestResultListenerServerRunner.kt:39)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner$1.invoke(UtpTestResultListenerServerRunner.kt:38)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner.<init>(UtpTestResultListenerServerRunner.kt:70)
at com.android.build.gradle.internal.testing.utp.UtpTestResultListenerServerRunner.<init>(UtpTestResultListenerServerRunner.kt:35)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt$runUtpTestSuiteAndWait$1.invoke(UtpTestUtils.kt:121)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt$runUtpTestSuiteAndWait$1.invoke(UtpTestUtils.kt:120)
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt.runUtpTestSuiteAndWait(UtpTestUtils.kt:135)     
at com.android.build.gradle.internal.testing.utp.UtpTestUtilsKt.runUtpTestSuiteAndWait$default(UtpTestUtils.kt:111)     
at com.android.build.gradle.internal.testing.utp.UtpTestRunner$1.invoke(UtpTestRunner.kt:59)    
at com.android.build.gradle.internal.testing.utp.UtpTestRunner$1.invoke(UtpTestRunner.kt:58)    
at com.android.build.gradle.internal.testing.utp.UtpTestRunner.scheduleTests(UtpTestRunner.kt:138)      
at com.android.build.gradle.internal.testing.BaseTestRunner.runTests(BaseTestRunner.java:196)   
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.lambda$runTestsWithTestRunner$2(DeviceProviderInstrumentTestTask.java:478)
at com.android.builder.testing.api.DeviceProvider.use(DeviceProvider.java:55)  
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.runTestsWithTestRunner(DeviceProviderInstrumentTestTask.java:471)
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.run(DeviceProviderInstrumentTestTask.java:402)
at com.android.build.gradle.internal.tasks.DeviceProviderInstrumentTestTask.doTaskAction(DeviceProviderInstrumentTestTask.java:305)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(BaseTask.kt:60)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:51)    
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:78)      
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)  
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:125)   
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58) 
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)   
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)   
at org.gradle.api.internal.tasks.execution.TaskExecution$3.run(TaskExecution.java:244)  
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:229)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:212)
at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:195)
at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:162)
at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:105)
at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:59)
at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:56)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:56)
at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:44)
at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:42)
at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:75)
at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:50)
at org.gradle.internal.execution.steps.PreCreateOutputParentsStep.execute(PreCreateOutputParentsStep.java:28)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:67)
at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:37)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:61)
at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:26)
at org.gradle.internal.execution.steps.CaptureOutputsAfterExecutionStep.execute(CaptureOutputsAfterExecutionStep.java:69)

@tagboola
Copy link
Contributor

Hey folks. Sorry for the issue. Feel free to drop down to 5.0.0 while we investigate.

@svenjacobs can you share the depedencies block of your build.gradle file?

@svenjacobs
Copy link
Author

can you share the depedencies block of your build.gradle file?

@tagboola This is a complex project consisting of about 80 Gradle modules. Does the output of gradle :app:dependencies maybe help?

@ber4444
Copy link

ber4444 commented Jan 23, 2025

Sorry, above comment was incorrect, the workaround:

  • firebaseAppdistributionGradle = "5.1.0"
  • firebaseAppdistributionGradle = "5.0.0"

@kaibolay
Copy link
Contributor

can you share the depedencies block of your build.gradle file?

@tagboola This is a complex project consisting of about 80 Gradle modules. Does the output of gradle :app:dependencies maybe help?

We've been able to reproduce the problem and diagnose it using gradlew buildEnvironment. We have a fix and hope to release it soon.

Until then, please downgrade to version 5.0.0.

Sorry for the inconvenience!

@lehcar09 lehcar09 added the type: bug Something isn't working label Jan 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: appdistribution type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants