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

Run possibly not working correctly / Integration with Intellij IDEA #80

Open
Aqluse opened this issue Aug 3, 2017 · 20 comments
Open

Run possibly not working correctly / Integration with Intellij IDEA #80

Aqluse opened this issue Aug 3, 2017 · 20 comments

Comments

@Aqluse
Copy link

Aqluse commented Aug 3, 2017

I stuck after I decided to move my Intellij IDEA JavaFX project to Gradle JavaFX.

When I try to run app with jfxRun task, I got this in console (and nothing else, app don't show)
03-08-2017 194033
Immediately after I stop running
03-08-2017 194044
A little time after I stop
03-08-2017 194100

Tried to debug it - not even reach start() in main class. But if I change string parameter passed to getResource(), it throwing exceptions, so it is executed well, strange but still isn't reaching breakpoints in this line.

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

This might have something to do with the way how Gradle is using their daemon. Normally a task does not require any deep interaction, it's for "working"-stuff.

As you are using Gradle 4, which has even more daemon-stuff, this might be a gradle4-problem. I suspect the daemon does something my plugin doesn't like.

Please add the verbose-switch to see more output (just inside the jfx-block), maybe you will get more details about what is happening.

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX

:compileJava
:processResources UP-TO-DATE
:classes
:jar
:jfxJar
:jfxRun
Running JavaFX Application
Running command: java -jar project-jfx.jar
The daemon will cancel the build.
Could not execute build using Gradle installation 'C:\Gradle\gradle-4.0.2'.
21:00:02: External task execution finished 'jfxRun'.

If I causing exceptions to be I also got this (text right after exceptions output)

... 
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8

:jfxRun FAILED

I put JAVA_TOOL_OPTIONS in system variables because I got errors with russian commentaries in my code, not sure that it have an effect on, but extra info may be useful.

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

@Aqluse can you check if adding --no-daemon does result in running your application?

gradle jfxRun --no-daemon

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX
Like that?
runAppParameter = '--no-daemon'

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

No, as I wrote, just calling it from CLI

gradle jfxRun --no-daemon

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX
It showed me exceptions in my project code, I commented it and it launched successfully (without commented part ofc). Running it with simple Run also successful. There wasn't any exception before I setup Gradle, but I try to find why it happening. Anyway exception don't even being output without calling Run with no daemon and debug don't work properly

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

Can you try to set this:

jfx {
    verbose = true
}

There should be more valuable stuff printed out.

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX
Commented (without application being closed):

D:\Projects\IntelliJIDEA_Projects\MusicSuite>gradle jfxRun --no-daemon
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
<========-----> 66% EXECUTING [8s]
> :jfxJar
> Task :jfxRun_TOOL_OPTIONS: -Dfile.encoding=UTF8> :jfxRun
Running JavaFX Application
Running command: java -jar project-jfx.jar
<==========---> 83% EXECUTING [59s]
> :jfxRun

Not Commented:

D:\Projects\IntelliJIDEA_Projects\MusicSuite>gradle jfxRun --no-daemon
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
<==========---> 83% EXECUTING [9s]
> :jfxRun                                        <==========---> 83% EXECUTING [12s]
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
                                                 Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at javafx.scene.control.TabPane$TabPaneSelectionModel.select(TabPane.java:722)
        at javafx.scene.control.SingleSelectionModel.clearAndSelect(SingleSelectionModel.java:103)
        at javafx.scene.control.TabPane$TabPaneSelectionModel.lambda$new$17(TabPane.java:684)
        at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:329)
        at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:73)
        at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
        at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
        at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
        at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
        at javafx.collections.ModifiableObservableListBase.addAll(ModifiableObservableListBase.java:102)
        at javafx.collections.ObservableListBase.addAll(ObservableListBase.java:245)
        at aqlusesoftware.musicsuite.component.ComponentTabPaneController.initialize(ComponentTabPaneController.java:48)
        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 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
        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 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
        at aqlusesoftware.musicsuite.Main.getCenterTabPane(Main.java:66)
        at aqlusesoftware.musicsuite.Main.start(Main.java:44)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        at java.lang.Thread.run(Thread.java:748)
Exception in Application start method
java.lang.reflect.InvocationTargetException
        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.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
        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 sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
        at com.jfoenix.skins.JFXTabPaneSkin$TabHeaderContainer.<init>(JFXTabPaneSkin.java:911)
        at com.jfoenix.skins.JFXTabPaneSkin$HeaderContainer.addTab(JFXTabPaneSkin.java:609)
        at com.jfoenix.skins.JFXTabPaneSkin$HeaderContainer.<init>(JFXTabPaneSkin.java:568)
        at com.jfoenix.skins.JFXTabPaneSkin.<init>(JFXTabPaneSkin.java:94)
        at com.jfoenix.controls.JFXTabPane.createDefaultSkin(JFXTabPane.java:65)
        at javafx.scene.control.Control.impl_processCSS(Control.java:872)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1280)
        at javafx.scene.Node.processCSS(Node.java:9058)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.preferredSize(Scene.java:1643)
        at javafx.scene.Scene.impl_preferredSize(Scene.java:1720)
        at javafx.stage.Window$9.invalidated(Window.java:846)
        at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
        at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
        at javafx.stage.Window.setShowing(Window.java:922)
        at javafx.stage.Window.show(Window.java:937)
        at javafx.stage.Stage.show(Stage.java:259)
        at aqlusesoftware.musicsuite.Main.start(Main.java:46)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)

> Task :jfxRuning application aqlusesoftware.musicsuite.Main
Running JavaFX Application
Running command: java -jar project-jfx.jar


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':jfxRun'.
> There was an exception while executing JavaFX Application. Please check build-log.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED in 17s
5 actionable tasks: 2 executed, 3 up-to-date


@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

This means when having "verbose" being active (which should be the default while developing) and --no-daemon being present, this is what you needed to know?

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX
What you mean by

this is what you needed to know?

I don't understand very well

P.S. I put verbose = true line in jfx and called gradle jfxRun --no-daemon in terminal

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 3, 2017

As far as I understood this issue, you wanted to know what happened when calling jfxRun. Setting verbose and non-daemon mode does show more information. If you wanted to know why your application does not behave as expected, I will need to have some visible source-code to check against.

@Aqluse
Copy link
Author

Aqluse commented Aug 3, 2017

@FibreFoX I don't really wanted to know why my application code didn't work right, because before Gradle setup it worked perfectly, but I wanted to figure out why Run/Debug (especially debug) tools started to fail.
My first problem was resources, since it stored beside .java files and Gradle wanted them to be in "resources" folder to be included into compiled project files. I solved this one. Then my very first loaded fxml-layout suddenly missed at all, I created it again. Now I got my Tabs (at least one of two) likely to be nulled even after initialization, I expect it in cause of loading fxml-resource as passed parameter to Tab's constructor, but all these resources are actually present in build/resources/... paths and all resources loaded before those Tabs was loaded properly even they are in subfolders of build/resources.

I'll check my project with latest Gradle 3.x version, as you said plugin isn't very optimised for newest version, then do some brainstorming if preceding won't help (it could be a way easier with debug), then I'll get you project sources.

UPD: All the same with Gradle 3.5.1

@FibreFoX
Copy link
Owner

FibreFoX commented Aug 4, 2017

@Aqluse I've downloaded your project, you can delete it now. When I find something, I will report back to you.

@Aqluse
Copy link
Author

Aqluse commented Aug 16, 2017

Maybe this will be helpful too

18:35:54: Executing external task 'jfxRun --info'...
The client will now receive all logging from the daemon (pid: 10496). The daemon log file: C:\Users\crite.DESKTOP-KJ13U2U\.gradle\daemon\3.5.1\daemon-10496.out.log
Starting build in new daemon [memory: 954,7 MB]
Executing build with daemon context: DefaultDaemonContext[uid=f2d467b3-8cd0-4c61-9e07-4427347c0f08,javaHome=C:\Program Files\Java\jdk1.8.0_131,daemonRegistryDir=C:\Users\crite.DESKTOP-KJ13U2U\.gradle\daemon,pid=10496,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF8,-Duser.country=RU,-Duser.language=ru,-Duser.variant]
Creating new cache for fileHashes, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\3.5.1\fileHashes\fileHashes.bin, access org.gradle.cache.internal.DefaultCacheAccess@7b5bb7c2
Creating new cache for jvmRuntimeClassSignatures, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\3.5.1\fileHashes\jvmRuntimeClassSignatures.bin, access org.gradle.cache.internal.DefaultCacheAccess@7b5bb7c2
Creating new cache for plugin-use-metadata, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\3.5.1\plugin-resolution\plugin-use-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@5c41c718
Creating new cache for client-status, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\3.5.1\plugin-resolution\client-status.bin, access org.gradle.cache.internal.DefaultCacheAccess@5c41c718
Starting Build
Compiling initialization script 'C:\Users\crite.DESKTOP-KJ13U2U\AppData\Local\Temp\ijinit41.gradle' using SubsetScriptTransformer.
Compiling initialization script 'C:\Users\crite.DESKTOP-KJ13U2U\AppData\Local\Temp\ijinit41.gradle' using BuildScriptTransformer.
Using 4 worker leases.
Settings evaluated using settings file 'D:\Projects\IntelliJIDEA_Projects\MusicSuite\settings.gradle'.
Projects loaded. Root project using build file 'D:\Projects\IntelliJIDEA_Projects\MusicSuite\build.gradle'.
Included projects: [root project 'MusicSuite']
Evaluating root project 'MusicSuite' using build file 'D:\Projects\IntelliJIDEA_Projects\MusicSuite\build.gradle'.
Creating new cache for metadata-1.1/results, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\transforms-1\metadata-1.1\results.bin, access org.gradle.cache.internal.DefaultCacheAccess@20c7133c
Creating new cache for metadata-2.23/module-metadata, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\modules-2\metadata-2.23\module-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@25de9e61
Creating new cache for metadata-2.23/artifact-at-repository, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\modules-2\metadata-2.23\artifact-at-repository.bin, access org.gradle.cache.internal.DefaultCacheAccess@25de9e61
Creating new cache for fileHashes, path D:\Projects\IntelliJIDEA_Projects\MusicSuite\.gradle\3.5.1\taskHistory\fileHashes.bin, access org.gradle.cache.internal.DefaultCacheAccess@66aed2e6
using patched ant-javafx.jar, located at > file:/C:/Users/CRITE~1.DES/AppData/Local/Temp/javafx-gradle-plugin-workaround4453025481540645399/ant-javafx.jar
All projects evaluated.
Selected primary task 'jfxRun' from project :
Creating new cache for annotation-processors, path D:\Projects\IntelliJIDEA_Projects\MusicSuite\.gradle\3.5.1\fileContent\annotation-processors.bin, access org.gradle.cache.internal.DefaultCacheAccess@73b4e964
Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':jar', task ':jfxJar', task ':jfxRun']
Creating new cache for jvmClassSignatures, path D:\Projects\IntelliJIDEA_Projects\MusicSuite\.gradle\3.5.1\taskHistory\jvmClassSignatures.bin, access org.gradle.cache.internal.DefaultCacheAccess@66aed2e6
Creating new cache for fileSnapshots, path D:\Projects\IntelliJIDEA_Projects\MusicSuite\.gradle\3.5.1\taskHistory\fileSnapshots.bin, access org.gradle.cache.internal.DefaultCacheAccess@66aed2e6
Creating new cache for taskHistory, path D:\Projects\IntelliJIDEA_Projects\MusicSuite\.gradle\3.5.1\taskHistory\taskHistory.bin, access org.gradle.cache.internal.DefaultCacheAccess@66aed2e6
:compileJava (Thread[Daemon worker,5,main]) started.
:compileJava
Putting task artifact state for task ':compileJava' into context took 0.022 secs.
Task :compileJava class loader hash: e1d5c4b3003235964bf4bb274716a6a0
Task :compileJava actions class loader hashes: [0c0afac576bb2de41200bc36bccb9200, e1d5c4b3003235964bf4bb274716a6a0]
Creating new cache for metadata-2.23/module-versions, path C:\Users\crite.DESKTOP-KJ13U2U\.gradle\caches\modules-2\metadata-2.23\module-versions.bin, access org.gradle.cache.internal.DefaultCacheAccess@25de9e61
Skipping task ':compileJava' as it is up-to-date (took 0.429 secs).
:compileJava UP-TO-DATE
:compileJava (Thread[Daemon worker,5,main]) completed. Took 0.538 secs.
:processResources (Thread[Daemon worker,5,main]) started.
:processResources
Putting task artifact state for task ':processResources' into context took 0.003 secs.
Task :processResources class loader hash: e1d5c4b3003235964bf4bb274716a6a0
Task :processResources actions class loader hashes: [0c0afac576bb2de41200bc36bccb9200]
Skipping task ':processResources' as it is up-to-date (took 0.053 secs).
:processResources UP-TO-DATE
:processResources (Thread[Daemon worker,5,main]) completed. Took 0.068 secs.
:classes (Thread[Daemon worker,5,main]) started.
:classes
Skipping task ':classes' as it has no actions.
:classes UP-TO-DATE
:classes (Thread[Daemon worker,5,main]) completed. Took 0.002 secs.
:jar (Thread[Daemon worker,5,main]) started.
:jar
Putting task artifact state for task ':jar' into context took 0.006 secs.
Task :jar class loader hash: e1d5c4b3003235964bf4bb274716a6a0
Task :jar actions class loader hashes: [0c0afac576bb2de41200bc36bccb9200]
Skipping task ':jar' as it is up-to-date (took 0.014 secs).
:jar UP-TO-DATE
:jar (Thread[Daemon worker,5,main]) completed. Took 0.025 secs.
:jfxJar (Thread[Daemon worker,5,main]) started.
:jfxJar
Putting task artifact state for task ':jfxJar' into context took 0.001 secs.
Executing task ':jfxJar' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
Adding 'deploy' directory wasn't successful, because it does not exist! (D:\Projects\IntelliJIDEA_Projects\MusicSuite\src\main\deploy).
You only need this directory when you want to override some resources.
Extraction of generated JAR-file ...
Creating parameter-map for packager...
Copying defined compile-dependencies...
Copying defined compile-dependency-files...
Copying defined runtime-dependencies...
Copying defined runtime-dependency-files...
Running packager...
:jfxJar (Thread[Daemon worker,5,main]) completed. Took 1.749 secs.
:jfxRun (Thread[Daemon worker,5,main]) started.
:jfxRun
Putting task artifact state for task ':jfxRun' into context took 0.0 secs.
Executing task ':jfxRun' (up-to-date check took 0.0 secs) due to:
  Task has not declared any outputs.
Adding 'deploy' directory wasn't successful, because it does not exist! (D:\Projects\IntelliJIDEA_Projects\MusicSuite\src\main\deploy).
You only need this directory when you want to override some resources.
Running JavaFX Application
Running command: java -jar project-jfx.jar
HandleCancel processing Build{id=161a9ed3-a47d-4b1b-bb10-d4500f858c5a.1, currentDir=D:\Projects\IntelliJIDEA_Projects\MusicSuite}
Closing daemon's stdin at end of input.
The daemon will no longer process any standard input.
Marking the daemon as canceled, address: [1a375153-76eb-4462-8231-1b2157774727 port:54462, addresses:[/127.0.0.1, /0:0:0:0:0:0:0:1]]
The daemon will cancel the build.
Stop requested. Daemon is removing its presence from the registry...
Could not execute build using Gradle installation 'C:\Gradle\gradle-3.5.1'.
18:36:19: External task execution finished 'jfxRun --info'.

@Aqluse
Copy link
Author

Aqluse commented Aug 17, 2017

The same problems with non-fx Java Gradle project in Intellij, in which I copied sources, libs and build.gradle text

@FibreFoX
Copy link
Owner

Now you lost me ... you are still using the gradle daemon. The task "jfxRun" is not compatible with the daemon, as that task was never thought of a real development-way, more than a quick-command for lazy execution.

So is this stil an issue with the plugin, or just related to your IDE/project?

@Aqluse
Copy link
Author

Aqluse commented Aug 17, 2017

@FibreFoX
"The task "jfxRun" is not compatible with the daemon, as that task was never thought of a real development-way, more than a quick-command for lazy execution."
You mean that I shouldn't use plugin for running/debugging coding, but just to assemble it by plugin tasks and running/debugging with IDE built-in tasks or I'm mistaken?

@FibreFoX
Copy link
Owner

Currently there is no IDE-support, yes. This plugin was ment for the bundling-process, but I can see a lot of devs using this for more than just bundling. Nevertheless you can use your normal IDE-features for running/debugging.

@Aqluse
Copy link
Author

Aqluse commented Aug 17, 2017

@FibreFoX Okay, it changes problem a little bit. I wanted to use Gradle to simplify online libs dependencies setting, so if it would work like that - it's ok. Do you plan to integrate plugin deeper with IDE's?

@Aqluse Aqluse closed this as completed Aug 30, 2017
@FibreFoX FibreFoX changed the title Run possibly not working correctly Run possibly not working correctly / Integration with Intellij IDEA Aug 31, 2017
@FibreFoX FibreFoX reopened this Aug 31, 2017
@Nerjis
Copy link

Nerjis commented Jan 6, 2019

capture du 2019-01-05 23-43-33
i have thise problem does anyone know how to solve it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants