StefanLobbenmeier / yt-dlp-compose

MIT License
18 stars 0 forks source link

yt-dlp-compose.exe dialog Failed to launch JVM #73

Open aryanchoudharypro opened 1 month ago

StefanLobbenmeier commented 3 weeks ago

Which OS version are you on? I remember someone else having this issue with windows 7

aryanchoudharypro commented 3 weeks ago

Windows 11 insider preview dev 26100.1

StefanLobbenmeier commented 3 weeks ago

I see, might be about insider build then, but I cannot find anything about that insider version having issues with JVMs, so it’s more likely an issue on my side. Will try to reproduce next time I have a windows machine started

aryanchoudharypro commented 3 weeks ago

Yes thanks, also I wanted to ask if you have tested the program with the screen reader on windows as I am a blind windows user myself

StefanLobbenmeier commented 3 weeks ago

Have not tried with screen reader on windows, just tried with screen reader on macOS - buttons have nice descriptions (like "download" or "delete") and are interactable, but text fields are missing descriptions and somehow labels are never read out, not sure why / what I need to do to support that

StefanLobbenmeier commented 3 weeks ago

So with the app accessibility inspector I can see all the labels in the app, so it seems to be mostly an issue with me not knowing how to use a screen reader to read out the labels 😄

On windows accessibility is supported in principle, but requires a command to be executed, see https://github.com/JetBrains/compose-multiplatform/issues/4779. I hope that this will be done automatically when the linked issue is closed.

aryanchoudharypro commented 3 weeks ago

and this is what i get when i run the jar file with the cli. [main] INFO Main - / Exception in thread "main" java.lang.ExceptionInInitializerError at androidx.compose.ui.scene.skia.WindowSkiaLayerComponent.(WindowSkiaLayerComponent.desktop.kt:44) at androidx.compose.ui.scene.ComposeContainer.createSkiaLayerComponent(ComposeContainer.desktop.kt:341) at androidx.compose.ui.scene.ComposeContainer.access$createSkiaLayerComponent(ComposeContainer.desktop.kt:82) at androidx.compose.ui.scene.ComposeContainer$mediator$2.invoke(ComposeContainer.desktop.kt:138) at androidx.compose.ui.scene.ComposeContainer$mediator$2.invoke(ComposeContainer.desktop.kt:138) at androidx.compose.ui.scene.ComposeSceneMediator$skiaLayerComponent$2.invoke(ComposeSceneMediator.desktop.kt:132) at androidx.compose.ui.scene.ComposeSceneMediator$skiaLayerComponent$2.invoke(ComposeSceneMediator.desktop.kt:132) at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) at androidx.compose.ui.scene.ComposeSceneMediator.getSkiaLayerComponent(ComposeSceneMediator.desktop.kt:132) at androidx.compose.ui.scene.ComposeSceneMediator.(ComposeSceneMediator.desktop.kt:133) at androidx.compose.ui.scene.ComposeSceneMediator.(ComposeSceneMediator.desktop.kt:102) at androidx.compose.ui.scene.ComposeContainer.(ComposeContainer.desktop.kt:127) at androidx.compose.ui.scene.ComposeContainer.(ComposeContainer.desktop.kt:82) at androidx.compose.ui.awt.ComposeWindowPanel.(ComposeWindowPanel.desktop.kt:52) at androidx.compose.ui.awt.ComposeWindow.(ComposeWindow.desktop.kt:65) at androidx.compose.ui.awt.ComposeWindow.(ComposeWindow.desktop.kt:63) at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:182) at androidx.compose.ui.window.Window_desktopKt$Window$3.invoke(Window.desktop.kt:176) at androidx.compose.ui.window.Window_desktopKt$Window$10.invoke(Window.desktop.kt:409) at androidx.compose.ui.window.Window_desktopKt$Window$10.invoke(Window.desktop.kt:406) at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:70) at androidx.compose.ui.window.AwtWindow_desktopKt$AwtWindow$2.invoke(AwtWindow.desktop.kt:69) at androidx.compose.runtime.DisposableEffectImpl.onRemembered(Effects.kt:82) at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1295) at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:984) at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:1005) at androidx.compose.runtime.Recomposer.composeInitial$runtime(Recomposer.kt:1099) at androidx.compose.runtime.CompositionImpl.composeInitial(Composition.kt:633) at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:619) at androidx.compose.ui.window.Application_desktopKt$awaitApplication$2$1$2.invokeSuspend(Application.desktop.kt:221) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Caused by: org.jetbrains.skiko.LibraryLoadException: Cannot find skiko-windows-x64.dll.sha256, proper native dependency missing. at org.jetbrains.skiko.Library.findAndLoad(Library.kt:103) at org.jetbrains.skiko.Library.load(Library.kt:56) at org.jetbrains.skiko.SkiaLayer.(SkiaLayer.awt.kt:32) ... 45 more

StefanLobbenmeier commented 3 weeks ago

Are you by chance on arm64 windows?

org.jetbrains.skiko.LibraryLoadException: Cannot find skiko-windows-x64.dll.sha256, proper native dependency missing

aryanchoudharypro commented 3 weeks ago

no

aryanchoudharypro commented 3 weeks ago

do i have to install anything elce besides yt-dlp-compose?

StefanLobbenmeier commented 3 weeks ago

No it should work out of the box.

just to confirm, you downloaded the jar file from the release and used your own Java runtime to execute it?

aryanchoudharypro commented 3 weeks ago

i tryed the exe first, and then the jar file

StefanLobbenmeier commented 3 weeks ago

Alright, I will verify that it runs on my windows machine

aryanchoudharypro commented 3 weeks ago

i'll also try it on windows 10 to sea if it works ,

StefanLobbenmeier commented 3 weeks ago

Ok so the exe works for me on windows 11 23H2, with the .jar file I have the same issue. It might be that the Java runtime needs some library that is not included by default on windows

StefanLobbenmeier commented 3 weeks ago

I think it’s this: https://stackoverflow.com/a/75099995

StefanLobbenmeier commented 3 weeks ago

The new .jar here should include the necessary files for windows: https://github.com/StefanLobbenmeier/yt-dlp-compose/releases/tag/SNAPSHOT-35

aryanchoudharypro commented 3 weeks ago

ok, so the exe stil doesn't work nither does the jar file. i get this output in the cmd window. Microsoft Windows [Version 10.0.26100.1] (c) Microsoft Corporation. All rights reserved.

C:\Users\aryan\downloads>java -jar yt-dlp-compose.jar [main] INFO Main - / [AWT-EventQueue-0] WARN de.lobbenmeier.stefan.settings.business.SettingsViewModel - Settings file C:\Users\aryan\AppData\Roaming\yt-dlp-compose\config\settings.json not found for Platform(name=Name: Windows 11, Version: 10.0, Architecture: amd64, ytDlpName=windows, ffmpegPlatform=windows64, needsExecutableBit=false) [DefaultDispatcher-worker-4] INFO de.lobbenmeier.stefan.updater.business.KtorFileDownloadWithProgress - Starting download to C:\Users\aryan\AppData\Roaming\yt-dlp-compose\data\binaries\ffbinaries\6.1\ffmpeg from https://github.com/ffbinaries/ffbinaries-prebuilt/releases/download/v6.1/ffmpeg-6.1-win-64.zip [DefaultDispatcher-worker-10] INFO de.lobbenmeier.stefan.updater.business.KtorFileDownloadWithProgress - Target file C:\Users\aryan\AppData\Roaming\yt-dlp-compose\data\binaries\yt-dlp\yt-dlp-nightly-builds\2024.08.21.232751 has already been downloaded Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: current must not be NaN at androidx.compose.ui.semantics.ProgressBarRangeInfo.(SemanticsProperties.kt:575) at androidx.compose.foundation.ProgressSemanticsKt$progressSemantics$1.invoke(ProgressSemantics.kt:53) at androidx.compose.foundation.ProgressSemanticsKt$progressSemantics$1.invoke(ProgressSemantics.kt:51) at androidx.compose.ui.semantics.CoreSemanticsModifierNode.applySemantics(SemanticsModifier.kt:77) at androidx.compose.ui.node.LayoutNode$collapsedSemantics$1.invoke(LayoutNode.kt:430) at androidx.compose.ui.node.LayoutNode$collapsedSemantics$1.invoke(LayoutNode.kt:421) at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2304) at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:504) at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:260) at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui(OwnerSnapshotObserver.kt:133) at androidx.compose.ui.node.OwnerSnapshotObserver.observeSemanticsReads$ui(OwnerSnapshotObserver.kt:121) at androidx.compose.ui.node.LayoutNode.getCollapsedSemantics$ui(LayoutNode.kt:421) at androidx.compose.ui.semantics.SemanticsNodeKt.SemanticsNode(SemanticsNode.kt:48) at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:268) at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:270) at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:270) at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:270) at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:270) at androidx.compose.ui.semantics.SemanticsNode.unmergedChildren$ui(SemanticsNode.kt:248) at androidx.compose.ui.semantics.SemanticsNode.getChildren(SemanticsNode.kt:327) at androidx.compose.ui.semantics.SemanticsNode.getReplacedChildren$ui(SemanticsNode.kt:298) at androidx.compose.ui.platform.a11y.AccessibilityController.syncNodes(AccessibilityController.kt:256) at androidx.compose.ui.platform.a11y.AccessibilityController.access$syncNodes(AccessibilityController.kt:52) at androidx.compose.ui.platform.a11y.AccessibilityController$launchSyncLoop$1$1.invokeSuspend(AccessibilityController.kt:219) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.scene.ComposeContainer$DesktopCoroutineExceptionHandler@58eb29b5, StandaloneCoroutine{Cancelling}@444e2f73, SwingDispatcher@39409805] Exception in thread "DefaultDispatcher-worker-11" io.ktor.client.plugins.HttpRequestTimeoutException: Request timeout has expired [url=https://objects.githubusercontent.com/github-production-release-asset-2e65be/73596626/5fc61863-9974-4103-9b0e-7d6259f18c84?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240826%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240826T025420Z&X-Amz-Expires=300&X-Amz-Signature=17fe7defed639a359c6122790f2a5c6ea9a6aded08d3b0d6b2b4705f313e6345&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=73596626&response-content-disposition=attachment%3B%20filename%3Dffmpeg-6.1-win-64.zip&response-content-type=application%2Foctet-stream, request_timeout=unknown ms] at io.ktor.client.engine.cio.EndpointKt$setupTimeout$timeoutJob$1.invokeSuspend(Endpoint.kt:307) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@30f345d6, Dispatchers.IO] Exception in thread "Thread-1" java.lang.RuntimeException: java.lang.NullPointerException: getGraphicsConfiguration(...) must not be null at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$InvocationUtils.invokeAndWait(AccessBridge.java:7352) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$InvocationUtils.invokeAndWait(AccessBridge.java:7327) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge.getAccessibleBoundsOnScreenFromContext(AccessBridge.java:1662) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge.getAccessibleXcoordFromContext(AccessBridge.java:1693) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge.runDLL(Native Method) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$dllRunner.run(AccessBridge.java:251) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.NullPointerException: getGraphicsConfiguration(...) must not be null at androidx.compose.ui.window.LayoutConfiguration_desktopKt.getDensity(LayoutConfiguration.desktop.kt:45) at androidx.compose.ui.scene.ComposeSceneMediator$DesktopPlatformComponent.getDensity(ComposeSceneMediator.desktop.kt:686) at androidx.compose.ui.platform.a11y.ComposeAccessible$ComposeAccessibleComponent.getDensity(ComposeAccessible.kt:169) at androidx.compose.ui.platform.a11y.ComposeAccessible$ComposeAccessibleComponent.toAwtRectangle(ComposeAccessible.kt:231) at androidx.compose.ui.platform.a11y.ComposeAccessible$ComposeAccessibleComponent.getBounds(ComposeAccessible.kt:356) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$71.call(AccessBridge.java:1667) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$71.call(AccessBridge.java:1662) at jdk.accessibility/com.sun.java.accessibility.internal.AccessBridge$InvocationUtils$CallableWrapper.run(AccessBridge.java:7408) at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714) at java.base/java.security.AccessController.doPrivileged(AccessController.java:400) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

and a window with some text. current must not be NaN

aryanchoudharypro commented 3 weeks ago

it opens now after disableing and reenabling the java access bridg, but now nvda doesn't read things properly

StefanLobbenmeier commented 2 weeks ago

I see, you might be running into this issue then: https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Accessibility/Windows.md#nvda-workaround

Ironically the workaround is described with screenshots, but here is the transcription:

  1. nvda 2021.3.1 Properties
  2. Tab "Compatibility"
  3. Change high DPI settings
  4. Override high DPI scaling behaviour. Scaling performed by: Application
aryanchoudharypro commented 2 weeks ago

It still doesn't work, and other thing I forgot to mention is that it speaks the window title as untitled

On Sat, 31 Aug, 2024, 6:00 pm Stefan Lobbenmeier, @.***> wrote:

I see, you might be running into this issue then:

https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Accessibility/Windows.md#nvda-workaround

Ironically the workaround is described with screenshots, but here is the transcription:

  1. nvda 2021.3.1 Properties
  2. Tab "Compatibility"
  3. Change high DPI settings
  4. Override high DPI scaling behaviour. Scaling performed by: Application

— Reply to this email directly, view it on GitHub https://github.com/StefanLobbenmeier/yt-dlp-compose/issues/73#issuecomment-2322883397, or unsubscribe https://github.com/notifications/unsubscribe-auth/A6DTISLZIBAWQHM3MH6HXL3ZUGZNBAVCNFSM6AAAAABMOYQEVKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMRSHA4DGMZZG4 . You are receiving this because you authored the thread.Message ID: @.***>