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

Android Studio Jellyfish Canary 2 can't load GradleProfilerStartupActivity #526

Closed
TadeasKriz opened this issue Jan 3, 2024 · 4 comments · Fixed by #532
Closed

Android Studio Jellyfish Canary 2 can't load GradleProfilerStartupActivity #526

TadeasKriz opened this issue Jan 3, 2024 · 4 comments · Fixed by #532
Labels

Comments

@TadeasKriz
Copy link

2024-01-03 11:39:23,952 [  10103] SEVERE - #c.i.i.s.i.StartupManagerImpl - Cannot load class org.gradle.profiler.studio.plugin.GradleProfilerStartupActivity$1 (
  error: com/intellij/openapi/externalSystem/settings/ExternalSystemSettingsListenerAdapter,
  classLoader=PluginClassLoader(plugin=PluginDescriptor(name=Gradle Profiler IntelliJ/Android Studio Plugin, id=org.gradle.profiler.studio.plugin, descriptorPath=plugin.xml, path=~/Developer/Sources/wallet/app/gradle/benchmarks/_build/profile-out/studio-sandbox/plugins/gradle-profiler-studio-plugin, version=0.20.0, package=null, isBundled=false), packagePrefix=null, state=active)
)
com.intellij.diagnostic.PluginException: Cannot load class org.gradle.profiler.studio.plugin.GradleProfilerStartupActivity$1 (
  error: com/intellij/openapi/externalSystem/settings/ExternalSystemSettingsListenerAdapter,
  classLoader=PluginClassLoader(plugin=PluginDescriptor(name=Gradle Profiler IntelliJ/Android Studio Plugin, id=org.gradle.profiler.studio.plugin, descriptorPath=plugin.xml, path=~/Developer/Sources/wallet/app/gradle/benchmarks/_build/profile-out/studio-sandbox/plugins/gradle-profiler-studio-plugin, version=0.20.0, package=null, isBundled=false), packagePrefix=null, state=active)
)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.kt:331)
	at com.intellij.ide.plugins.cl.PluginClassLoader.tryLoadingClass(PluginClassLoader.kt:178)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:151)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	at org.gradle.profiler.studio.plugin.GradleProfilerStartupActivity.disableDownloadOfExternalAnnotations(GradleProfilerStartupActivity.java:60)
	at org.gradle.profiler.studio.plugin.GradleProfilerStartupActivity.runActivity(GradleProfilerStartupActivity.java:43)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runOldActivity(StartupManagerImpl.kt:328)
	at com.intellij.ide.startup.impl.StartupManagerImpl.access$runOldActivity(StartupManagerImpl.kt:69)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:271)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$5$1.invoke(StartupManagerImpl.kt:270)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContextInner(coroutines.kt:321)
	at com.intellij.openapi.progress.CoroutinesKt.access$blockingContextInner(coroutines.kt:1)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invokeSuspend(coroutines.kt:198)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
	at com.intellij.openapi.progress.CoroutinesKt$blockingContext$2.invoke(coroutines.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
	at com.intellij.openapi.progress.CoroutinesKt.blockingContext(coroutines.kt:197)
	at com.intellij.ide.startup.impl.StartupManagerImpl.runPostStartupActivities(StartupManagerImpl.kt:270)
	at com.intellij.ide.startup.impl.StartupManagerImpl.access$runPostStartupActivities(StartupManagerImpl.kt:69)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invokeSuspend(StartupManagerImpl.kt:192)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3$2.invoke(StartupManagerImpl.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:167)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
	at com.intellij.ide.startup.impl.StartupManagerImpl$runPostStartupActivities$3.invokeSuspend(StartupManagerImpl.kt:191)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
Caused by: java.lang.NoClassDefFoundError: com/intellij/openapi/externalSystem/settings/ExternalSystemSettingsListenerAdapter
	at java.base/java.lang.ClassLoader.defineClass2(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
	at com.intellij.util.lang.UrlClassLoader.consumeClassData(UrlClassLoader.java:289)
	at com.intellij.util.lang.ZipResourceFile.findClass(ZipResourceFile.java:113)
	at com.intellij.util.lang.JarLoader.findClass(JarLoader.java:58)
	at com.intellij.util.lang.ClassPath.findClassInLoader(ClassPath.java:240)
	at com.intellij.util.lang.ClassPath.findClass(ClassPath.java:190)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClassInsideSelf(PluginClassLoader.kt:326)
	... 32 more
Caused by: java.lang.ClassNotFoundException: com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListenerAdapter PluginClassLoader(plugin=PluginDescriptor(name=Gradle Profiler IntelliJ/Android Studio Plugin, id=org.gradle.profiler.studio.plugin, descriptorPath=plugin.xml, path=~/Developer/Sources/wallet/app/gradle/benchmarks/_build/profile-out/studio-sandbox/plugins/gradle-profiler-studio-plugin, version=0.20.0, package=null, isBundled=false), packagePrefix=null, state=active)
	at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.kt:156)
	at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
	... 40 more

Seems like a class that was previously available com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListenerAdapter is no longer present.

@asodja
Copy link
Member

asodja commented Jan 8, 2024

Thanks for the report! Gradle-profiler is not tested with Android Studio Jellyfish yet.

This is a valid issue.

@joshfriend
Copy link
Contributor

I'm also unable to use profiler with Jellyfish (canary04). I built gradle-profiler from master and get this error:

java.lang.IllegalStateException: Timeout waiting for incoming connection from start-detector.
	at org.gradle.profiler.studio.process.StudioProcess.waitOnSuccessfulIdeStart(StudioProcess.java:53)
	at org.gradle.profiler.studio.process.StudioProcess.<init>(StudioProcess.java:37)
	at org.gradle.profiler.studio.process.StudioProcessController.maybeStartProcess(StudioProcessController.java:76)
	at org.gradle.profiler.studio.process.StudioProcessController.run(StudioProcessController.java:43)
	at org.gradle.profiler.studio.StudioGradleClient.sync(StudioGradleClient.java:78)
	at org.gradle.profiler.studio.AndroidStudioSyncAction.run(AndroidStudioSyncAction.java:36)
	at org.gradle.profiler.gradle.BuildUnderTestInvoker$InvokeAndMeasureAction.run(BuildUnderTestInvoker.java:71)
	at org.gradle.profiler.gradle.BuildUnderTestInvoker$InvokeAndMeasureAction.run(BuildUnderTestInvoker.java:51)
	at org.gradle.profiler.RunBuildStepAction.run(RunBuildStepAction.java:29)
	at org.gradle.profiler.ScenarioInvoker.runMeasured(ScenarioInvoker.java:28)
	at org.gradle.profiler.gradle.GradleScenarioInvoker.run(GradleScenarioInvoker.java:121)
	at org.gradle.profiler.studio.invoker.StudioGradleScenarioInvoker.run(StudioGradleScenarioInvoker.java:63)
	at org.gradle.profiler.studio.invoker.StudioGradleScenarioInvoker.run(StudioGradleScenarioInvoker.java:19)
	at org.gradle.profiler.Main.invoke(Main.java:138)
	at org.gradle.profiler.Main.run(Main.java:96)
	at org.gradle.profiler.Main.main(Main.java:35)
Caused by: java.lang.IllegalStateException: Timeout waiting for incoming connection from start-detector.
	at org.gradle.profiler.client.protocol.Server.waitForIncoming(Server.java:50)
	at org.gradle.profiler.studio.process.StudioProcess.waitOnSuccessfulIdeStart(StudioProcess.java:46)
	... 15 more

Android studio is started, but profiler seems unable to attach to it and start a sync

@gavra0
Copy link
Contributor

gavra0 commented Jan 22, 2024

This is because of JetBrains/intellij-community@d33ec90, that removed ExternalSystemSettingsListenerAdapter. This code should be migrated to use GradleSettingsListener.

joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
@joshfriend
Copy link
Contributor

I got it working with Jellyfish: #532

joshfriend added a commit to joshfriend/gradle-profiler that referenced this issue Jan 22, 2024
Closes gradle#526

Signed-off-by: Josh Friend <jfriend@squareup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants