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

Plugin is incompatible with Flatpak distribution of IntelliJ #20

Closed
Agraphie opened this issue Aug 14, 2020 · 24 comments · Fixed by #51
Closed

Plugin is incompatible with Flatpak distribution of IntelliJ #20

Agraphie opened this issue Aug 14, 2020 · 24 comments · Fixed by #51
Labels

Comments

@Agraphie
Copy link

Hi,

I'm trying your plugin on Pop!OS and Gnome with Android Studio, but I get the following exceptions. It also doesn't work for Intellij Ultimate for me. Any ideas?

Could not load library libauto-dark-mode-linux-gnome.so.

java.lang.UnsatisfiedLinkError: /home/agraphie/.var/app/com.google.AndroidStudio/cache/nativeutils3528096291508/libauto-dark-mode-linux-gnome.so: libgiomm-2.4.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1946)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1828)
	at java.lang.Runtime.load0(Runtime.java:810)
	at java.lang.System.load(System.java:1088)
	at com.github.weisj.darklaf.platform.NativeUtil.loadLibraryFromJar(NativeUtil.java:104)
	at com.github.weisj.darklaf.platform.AbstractLibrary.loadLibrary(AbstractLibrary.java:65)
	at com.github.weisj.darklaf.platform.AbstractLibrary.updateLibrary(AbstractLibrary.java:53)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeLibrary.get(GnomeLibrary.java:43)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:61)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
	at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:44)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:52)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at com.intellij.serviceContainer.BaseComponentAdapter.getImplementationClass(BaseComponentAdapter.kt:46)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:105)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:518)
	at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:138)
	at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:438)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:398)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:388)
	at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:372)
	at com.intellij.util.messages.impl.MessageBusImpl.lambda$createTopicHandler$1(MessageBusImpl.java:241)
	at com.sun.proxy.$Proxy51.appFrameCreated(Unknown Source)
	at com.intellij.idea.IdeStarter.main(ApplicationLoader.kt:497)
	at com.intellij.idea.ApplicationLoader$startApp$8$1.run(ApplicationLoader.kt:240)
	at com.intellij.openapi.application.TransactionGuardImpl.performUserActivity(TransactionGuardImpl.java:193)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:239)
	at java.util.concurrent.CompletableFuture.uniRun(CompletableFuture.java:719)
	at java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:701)
	at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:456)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
java.lang.NoClassDefFoundError: Could not initialize class com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
	at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:44)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.instantiateClassWithConstructorInjection(PlatformComponentManagerImpl.kt:505)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:52)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:39)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:110)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:72)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance$default(BaseComponentAdapter.kt:65)
	at com.intellij.serviceContainer.PlatformComponentManagerImpl.getService(PlatformComponentManagerImpl.kt:288)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:18)
	at com.github.weisj.darkmode.DarkModeConfigurable.createPanel(DarkModeConfigurable.kt:20)
	at com.intellij.openapi.options.BoundConfigurable$panel$1.compute(BoundConfigurable.kt:21)
	at com.intellij.openapi.options.BoundConfigurable$panel$1.compute(BoundConfigurable.kt:16)
	at com.intellij.openapi.util.ClearableLazyValue.getValue(ClearableLazyValue.java:47)
	at com.intellij.openapi.options.BoundConfigurable.createComponent(BoundConfigurable.kt:29)
	at com.intellij.openapi.options.ex.ConfigurableWrapper.createComponent(ConfigurableWrapper.java:158)
	at com.intellij.openapi.options.ex.ConfigurableCardPanel.lambda$createConfigurableComponent$0(ConfigurableCardPanel.java:74)
	at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:821)
	at com.intellij.openapi.application.ReadAction.compute(ReadAction.java:71)
	at com.intellij.openapi.options.ex.ConfigurableCardPanel.createConfigurableComponent(ConfigurableCardPanel.java:70)
	at com.intellij.openapi.options.ex.ConfigurableCardPanel.create(ConfigurableCardPanel.java:56)
	at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:56)
	at com.intellij.openapi.options.newEditor.ConfigurableEditor$1.create(ConfigurableEditor.java:53)
	at com.intellij.ui.CardLayoutPanel.createValue(CardLayoutPanel.java:87)
	at com.intellij.ui.CardLayoutPanel.select(CardLayoutPanel.java:115)
	at com.intellij.ui.CardLayoutPanel.lambda$null$0(CardLayoutPanel.java:131)
	at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:309)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:441)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:734)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:781)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:687)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:190)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:235)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:233)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:233)
	at java.awt.Dialog.show(Dialog.java:1077)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:708)
	at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:433)
	at com.intellij.openapi.ui.DialogWrapper.doShow(DialogWrapper.java:1698)
	at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:1657)
	at com.intellij.openapi.options.newEditor.SettingsDialog.lambda$show$0(SettingsDialog.java:86)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:149)
	at com.intellij.openapi.options.newEditor.SettingsDialog.show(SettingsDialog.java:86)
	at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:84)
	at com.intellij.ide.actions.ShowSettingsAction.perform(ShowSettingsAction.java:54)
	at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:41)
	at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:298)
	at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:315)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:293)
	at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:263)
	at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:77)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:282)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:110)
	at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:83)
	at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:107)
	at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:116)
	at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:121)
	at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:110)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:517)
	at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:36)
	at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:539)
	at java.awt.Component.processMouseEvent(Component.java:6550)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3325)
	at java.awt.Component.processEvent(Component.java:6315)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4899)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4721)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4721)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:766)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:739)
	at java.awt.EventQueue$4.run(EventQueue.java:737)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:736)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:908)
	at com.intellij.ide.IdeEventQueue.dispatchMouseEvent(IdeEventQueue.java:846)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:778)
	at com.intellij.ide.IdeEventQueue.lambda$dispatchEvent$8(IdeEventQueue.java:424)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computePrioritized(CoreProgressManager.java:698)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:423)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
``
@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

Do you have libgiomm installed?

It also doesn't work for Intellij Ultimate for me

Is this a separate issue or do you just mean you are using IntelliJ Ultimate?

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

@IncPlusPlus could it be that the installed libraries simply don’t match the versions we are compiling against? It might be worthwhile to figure out the minimal versions of the libraries we are needing to link against.

@Agraphie
Copy link
Author

As far as I can see libgiomm is part of libglibmm which seems to be installed with libglibmm-2.4.

Concerning intellij ultimate what I meant is that I just installed the plugin in intellij ultimate and get the same exceptions.

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

Just to be sure could you try to manually install them

sudo apt-get install libsigc++-2.0 libglibmm-2.4 libgtk-3

@Agraphie
Copy link
Author

So I have
sudo apt install libgtkmm-3.0-1v5 libsigc++-2.0-0v5 libglibmm-2.4-1v5 which are all already installed

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

Could you try to reinstall them? Also do you have the 32bit or 64Bit versions installed?

@Agraphie
Copy link
Author

I reinstalled them but without any difference. They are all the 64bit version.

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

Do you have any duplicate versions of the libraries installed?
Would you be able to try to build the project yourself? If there is anything wrong with the link path of the library there may be more helpful error messages at compile time.

@IncPlusPlus
Copy link
Contributor

@IncPlusPlus could it be that the installed libraries simply don’t match the versions we are compiling against? It might be worthwhile to figure out the minimal versions of the libraries we are needing to link against.

I agree. @Agraphie, could you provide the version numbers of those three packages given with apt info [package name]?

@IncPlusPlus
Copy link
Contributor

I believe I might also be running into this same error. I thought it was because I hadn't updated the plugin yet but I actually have the latest version. I'll give it a look.

@Agraphie
Copy link
Author

Agraphie commented Aug 14, 2020

Package: libgtkmm-3.0-1v5
Version: 3.24.2-1build1

Package: libsigc++-2.0-0v5
Version: 2.10.2-1build1

Package: libglibmm-2.4-1v5
Version: 2.64.2-1

I was able to build the plugin without any problems via ./gradlew :auto-dark-mode-plugin:buildPlugin. ./gradlew :auto-dark-mode:buildPlugin (as stated in the readme) did not work with

Project 'auto-dark-mode' is ambiguous in root project 'auto-dark-mode'. Candidates are: 'auto-dark-mode-base', 'auto-dark-mode-dependencies-bom', 'auto-dark-mode-linux', 'auto-dark-mode-linux-gnome', 'auto-dark-mode-macos', 'auto-dark-mode-plugin', 'auto-dark-mode-windows'.

@IncPlusPlus
Copy link
Contributor

Ah. Yeah I think buildPlugin isn't necessary for you to run on your own. My bad on that one. I believe you just need to do build :auto-dark-mode-plugin:runIde.

@Agraphie
Copy link
Author

Just running :auto-dark-mode-plugin:runIde I can see the plugin's settings, so I assume it works...

The way I installed the plugin is over the jetbrains repository. Maybe there is something wrong with what's uploaded there? Also when I build the plugin with buildPlugin and then try to install the .jar or .zip in Android Studio I get "Plugin 'Auto Dark Mode' is incompatible with this installation". But maybe that's expected or I'm building it wrong.

Do you have any duplicate versions of the libraries installed?

Probably not. It's a pretty new Pop!OS installation and I haven't really installed that much.

@IncPlusPlus
Copy link
Contributor

I believe I might also be running into this same error. I thought it was because I hadn't updated the plugin yet but I actually have the latest version. I'll give it a look.

As it turns out, this actually runs fine for me. I'm running Auto Dark Mode 1.5.0-2020.2.

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

For Android studio you will need to checkout the 2019.3 branch as AndroidStudio is based on the 2019.3 version of the IntelliJ Platform.

@IncPlusPlus
Copy link
Contributor

Ah. I missed the fact that the error was from Android Studio. They're going to be a little bit behind on their IntelliJ base version unfortunately.

@Agraphie
Copy link
Author

So the error "Plugin 'Auto Dark Mode' is incompatible with this installation" is from Android Studio when installing manually, yes. But the original stacktrace occurs in Android Studio AND Intellij Ultimate.

I cannot even run Intellij anymore as I get the errors (same as above)

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Gtk-Message: 17:39:46.244: Failed to load module "appmenu-gtk-module"
Gtk-Message: 17:39:46.322: Failed to load module "canberra-gtk-module"
Gtk-Message: 17:39:46.322: Failed to load module "canberra-gtk-module"
2020-08-14 17:39:47,346 [   1206]   WARN - tellij.ide.SystemHealthMonitor - issue detected: vm.options.env.vars 
2020-08-14 17:39:47,404 [   1264]  ERROR - tform.linux.gnome.GnomeLibrary - Could not load library libauto-dark-mode-linux-gnome.so. 
java.lang.UnsatisfiedLinkError: /home/agraphie/.var/app/com.jetbrains.IntelliJ-IDEA-Community/cache/tmp/nativeutils21008583138977/libauto-dark-mode-linux-gnome.so: libgiomm-2.4.so.1: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
	at java.base/java.lang.Runtime.load0(Runtime.java:768)
	at java.base/java.lang.System.load(System.java:1834)
	at com.github.weisj.darklaf.platform.NativeUtil.loadLibraryFromJar(NativeUtil.java:104)
	at com.github.weisj.darklaf.platform.AbstractLibrary.loadLibrary(AbstractLibrary.java:65)
	at com.github.weisj.darklaf.platform.AbstractLibrary.updateLibrary(AbstractLibrary.java:53)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeLibrary.get(GnomeLibrary.java:43)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:61)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
	at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
	at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
	at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:636)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:406)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:384)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:366)
	at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:32)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:187)
	at com.sun.proxy.$Proxy29.appFrameCreated(Unknown Source)
	at com.intellij.idea.IdeStarter.main(IdeStarter.kt:105)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:231)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1085)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:834)
2020-08-14 17:39:47,406 [   1266]  ERROR - tform.linux.gnome.GnomeLibrary - IntelliJ IDEA 2020.2  Build #IC-202.6397.94 
2020-08-14 17:39:47,406 [   1266]  ERROR - tform.linux.gnome.GnomeLibrary - JDK: 11.0.7; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o. 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - OS: Linux 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - Plugin to blame: Auto Dark Mode version: 1.5.0-2020.2 
2020-08-14 17:39:47,407 [   1267]  ERROR - tform.linux.gnome.GnomeLibrary - Last Action:  
2020-08-14 17:39:47,408 [   1268]  ERROR - llij.ide.plugins.PluginManager - java.lang.ExceptionInInitializerError 
java.util.concurrent.CompletionException: java.lang.ExceptionInInitializerError
	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:787)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
	at java.base/java.util.concurrent.CompletableFuture.postFire(CompletableFuture.java:610)
	at java.base/java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1085)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ExceptionInInitializerError
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettingsProvider$1.invoke(GnomeSettings.kt:10)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.getContainer(Settings.kt)
	at com.github.weisj.darkmode.platform.settings.SingletonSettingsContainerProvider.create(Settings.kt:16)
	at com.github.weisj.darkmode.AutoDarkModeOptions.<init>(AutoDarkModeOptions.kt:28)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
	at com.github.weisj.darkmode.AutoDarkMode.<clinit>(AutoDarkMode.kt:105)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at com.intellij.serviceContainer.ConstructorInjectionKt.instantiateUsingPicoContainer(constructorInjection.kt:47)
	at com.intellij.serviceContainer.ComponentManagerImpl.instantiateClassWithConstructorInjection(ComponentManagerImpl.kt:662)
	at com.intellij.serviceContainer.ServiceComponentAdapter.createAndInitialize(ServiceComponentAdapter.kt:49)
	at com.intellij.serviceContainer.ServiceComponentAdapter.doCreateInstance(ServiceComponentAdapter.kt:37)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstanceUncached(BaseComponentAdapter.kt:113)
	at com.intellij.serviceContainer.BaseComponentAdapter.getInstance(BaseComponentAdapter.kt:67)
	at com.intellij.serviceContainer.ComponentManagerImpl.doGetService(ComponentManagerImpl.kt:411)
	at com.intellij.serviceContainer.ComponentManagerImpl.getService(ComponentManagerImpl.kt:393)
	at com.intellij.openapi.components.ServiceManager.getService(ServiceManager.java:20)
	at com.github.weisj.darkmode.AutoDarkModeStartupListener.appFrameCreated(AutoDarkModeStartupListener.kt:10)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intellij.util.messages.impl.MessageBusImpl.invokeListener(MessageBusImpl.java:636)
	at com.intellij.util.messages.impl.MessageBusImpl.deliverMessage(MessageBusImpl.java:406)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:384)
	at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:366)
	at com.intellij.util.messages.impl.MessageBusImpl.access$100(MessageBusImpl.java:32)
	at com.intellij.util.messages.impl.MessageBusImpl$MessagePublisher.invoke(MessageBusImpl.java:187)
	at com.sun.proxy.$Proxy29.appFrameCreated(Unknown Source)
	at com.intellij.idea.IdeStarter.main(IdeStarter.kt:105)
	at com.intellij.idea.ApplicationLoader$startApp$8.run(ApplicationLoader.kt:231)
	at java.base/java.util.concurrent.CompletableFuture$UniRun.tryFire(CompletableFuture.java:783)
	... 11 more
Caused by: java.lang.IllegalStateException: Gnome library not loaded.
	at com.github.weisj.darkmode.platform.linux.gnome.GnomeSettings.<clinit>(GnomeSettings.kt:62)
	... 59 more

@Agraphie
Copy link
Author

It seems to be an issue with the flatpak installation. I downloaded Intellij Ultimate from the jetbrains website and installed the plugin. That worked. I'm not sure what causes the issue. So I guess this can be kinda closed?

@IncPlusPlus
Copy link
Contributor

I'm not familiar with how flatpak bundling works but if I had to guess, it could be that the flatpak for IntelliJ that you used doesn't contain some necessary runtime library. If that's the case, I'm curious what this might be. This would mean that this plugin actually has a runtime dependency which we should list in the README.

@weisJ
Copy link
Owner

weisJ commented Aug 14, 2020

There might be a difference in what library search paths are registered for the individual JREs. If this is the case we could add the paths manually ourself.


Sandboxing of flatpak might be an issue too.

Edit: Form doing some research the sand boxing of flatpak definitely is an issue. The IntelliJ package is hosted here:
https://github.com/flathub/com.jetbrains.IntelliJ-IDEA-Ultimate/issues
Every flatpak application declares a runtime, which it will be able to access. IntelliJ only declares org.freedesktop.Sdk, which doesn’t include the Gnome specific libraries (There is a separate Gnome Runtime).

@weisJ weisJ changed the title Exception when running in Pop!OS Plugin is incompatible with Flatpak distribution of IntelliJ Aug 15, 2020
@weisJ weisJ added the Gnome label Aug 15, 2020
@weisJ
Copy link
Owner

weisJ commented Aug 15, 2020

I have spiked an issue to offer provide specialised distributions with the Gnome runtime. This would probably solve this issue.

@Agraphie
Copy link
Author

Awesome, thanks. I subscribed to the issue and will test again if there's a new flatpack distribution or so.

@rkraneis
Copy link

rkraneis commented Nov 29, 2022

Unfortunately, this still is an issue (IntelliJ 2022.2.4).

flatpak run com.jetbrains.IntelliJ-IDEA-Community
CompileCommand: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend bool exclude = true

(process:2): Gtk-WARNING **: 11:01:18.514: Locale not supported by C library.
Using the fallback 'C' locale.
Gtk-Message: 11:01:18.536: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:01:18.536: Failed to load module "pk-gtk-module"
Gtk-Message: 11:01:18.536: Failed to load module "canberra-gtk-module"
Gtk-Message: 11:01:18.536: Failed to load module "pk-gtk-module"
2022-11-29 11:01:19,346 [ 897] SEVERE - #c.g.w.d.p.l.g.GtkLibrary - Could not load library auto-dark-mode-linux-gtk.
java.lang.UnsatisfiedLinkError: /tmp/com-weisj-darklaf-nativeutils-auto-dark-mode-linux-gtk394052994416636709540601652684458/libauto-dark-mode-linux-gtk-x86-64.so: libgtkmm-3.0.so.1: cannot open shared object file: No such file or directory
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)

Edit: to remove the plugin for now, just delete it:
rm -r ~/.var/app/com.jetbrains.IntelliJ-IDEA-Community/data/JetBrains/IdeaIC2022.2/auto-dark-mode-plugin (replace com.jetbrains.IntelliJ-IDEA-Community and IdeaIC2022.2 with the App-ID and ID of the bundled product in question).

Edit2: as a workaround, I currently use the quick theme switcher.

@weisJ
Copy link
Owner

weisJ commented Dec 2, 2022

This isn't something I am able to fix. The flatpak distribution isn't an official one and there doesn't seem to be much interest in fixing it on the distribution side of things. See flathub/com.jetbrains.IntelliJ-IDEA-Ultimate#58

@weisJ weisJ closed this as completed Dec 2, 2022
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