Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4
-
@vitusson … ups, sorry, da hab ich garnicht nachgedacht… stimmt, da ist alles in python.
-
@beta-tester sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
und überhaupt was unter java ist da so architekturspezifisch?
JavaFX gibts defacto nicht unter 32bit (für die “aktuellen” Javaversionen).
MV verwendet das, Kodiplugin nicht.
-
also dafür funktioniert dann MV 13.5.x noch erstaunlich gut.
also darf ich nicht jammern sondern muss ich richtig froh da drüber sein… -
Also das MV überhaupt auf einem Raspi läuft grenzt schon ein Wunder, da die neueren MV Versionen JavaFX benötigen und das freundliche Oracle/OpenJFX Team bis jetzt überhaupt nur offiziell Windows/Linux Intel/macOS supported. Auch der 32bit Support wird als unnötig erachtet.
Das linux nightly jar beinhaltet JavaFX mit 64 bit Intel support. Die Fehlermeldungen in issues.txt könnten durchaus daher rühren.
-
ok, danke… dann erfreue ich mich an dem wunder und nutze das von MV was geht…
und das ist doch eine menge. -
@beta-tester sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
eben die filter einstellungen sind nicht zu benutzen, weil der dialog komplett kaputt ist.
Sag mal, Du hast aber nicht zufällig einen java.lang.IllegalAccessError in der Klasse RangeSliderBehavior in der Konsole stehen?
Kannst mal posten, was MV 13.5 da so in Deiner Konsole an Exceptions raus haut?
edit: hab gesehen, das hast Du ja schon getan. Sorry! Ist ein anderer Fehler bei Dir.
-
@rubikon sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
Kannst mal posten, was MV 13.5 da so in Deiner Konsole an Exceptions raus haut?
ich habe MV13.5.1 gestartet und auf das filtersymbol geklickt.
dann versuchtden slider zu benutzen. es ging irgendwie anfang und ende zu ändern, aber nicht so wie ich es unter windows getan hatte.
die filmliste ändert sich on-the-fly unterhalb des dialogs, nach dem der slider verändert wurde - also funktioniert der filter im prinzip, nur ist der dialog so nicht wirklich nurtbar, wenn man nicht weiß, was man geändert hat.
es kommt keine zusätzliche felhermeldung während des öffnen des filter dialogs oder der benutzung des sliders.alle fehlermeldungen kamen schon voher, bevor der filter dialog geöffnet wurde.
issue_log2.txtder dialog scheint mit irgend ein zeugs überlagert zu sein oder ein refresch/redraw fehlt…
wenn ich den dialog vergrößer, kann ich mehr von einigen elementen sehen oder wenn ich mit der maus über bestimmte stellen drüber fahren werden kurz felder sichtbar. -
@beta-tester Wie gesagt Sorry. Ich hatte leider schon auf Absenden gedrückt und erst danach gesehen, dass Du die Fehlermeldungen bereits gepostet hattest. Auf Deutsch hätte ich mir dieses vorige Posting einfach besser sparen können und erst g’scheid lesen. Für Bastler -bissl Erfahrung mit CMD und Java vorausgesetzt- ist es Dank des inzwischen für Win32 verfügbaren JDK+FX von Zulu ja vergleichsweise “einfach”, MV 13.5 irgendwie (ohne Support!) zum Laufen zu kriegen.
Aber das hier?!
Für OpenJFX auf 32-Bit Linux/ARM… ist auf ne Minute in Suchmaschine von Wahl noch das “aussichtsreichste”, selber bauen. Riecht -so wie mein Versuch damals, QT5 mal selbst zu bauen- nach Zeitfresser! Und zwar ohne Erfolgsgarantie! Und auch das nur, wenn man “da steht aufs Querlesen nicht ausdrücklich drin, dass man 64-bit braucht” schon als "aussichtsreich auffasst.
Ansonsten war da halt dieses weiter oben von DaDirnbocher und DerReisende77 wohl gemeinte Posting von johanvos und … da ist man bis auf Weiteres voll auf sich gestellt.
Dass man mit “word width mismatch” noch so weit kommt wie Du… Respekt!
-
@rubikon sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
Dass man mit “word width mismatch” noch so weit kommt wie Du… Respekt!
na ich denk die entwickler von MediathekView haben da ordentliche arbeit geleistet und soviel wie möglich an ausnahmen abgefangen/tolleriert um so weit zu kommen wie es geht.
und libprism_es2, libglassgtk3, libjavafx_font_… und libdecora_sse die als 64bit erwartet werden, aber bei mit nur in 32 bit auf meinem system sind, scheinen nur für die kaputte optik/bedienoberfläch verantwortlich zu sein - vielleicht gibt es ja ein notfall fallback.
-
@beta-tester hast du Erfahrung im Bauen von Java Apps? Ich habe gesehen es gibt Liberica JDK 13 mit OpenJFX 13 für RPi. Dafür müsste man aber wohl das buildfile anpassen und lokal alles bauen.
-
@DerReisende77 sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
@beta-tester hast du Erfahrung im Bauen von Java Apps?
leider nein. wird wohl mehr sein als javac
-
@DerReisende77 Also ist dreiviertelt Off-Topic…
ich hab mir eben eine VM mit Debian stable i586 eingerichtet, also 32 Bit aber halt für ne andere Architektur als Raspberry Pi. (Ubuntu i586 gibt es ja kein aktuelles mehr)
Spoiler: und bin auf der Nase gelandet.
MV 13.5 hab ich per tar.gz eingespielt und das beigelegte jre Verzeichnis gelöscht.
Liberica JDK 11u5 hab ich von hier, und zwar die .deb Variante für Linux x86 32 Bit (zuvor auch 13u1 vom selben Anbieter) und zwar “regular” nicht die “lite” Version, bei welcher dabei steht, dass kein Java FX dabei ist.Jetzt hab ich in meinem jugendlichen Leichtsinn “einfach” das java executable aus dem o.g. JDK genommen und damit das MV.jar aus dem .tar.gz aufgerufen.
Ähm, nicht gut: issues.txt - es sieht aufs kurz und unaufmerksam Drüberlesen den Fehlermeldungen von @beta-tester sehr ähnlich. architecture word width mismatch und so.
Ich hab dann noch folgendes getestet:
rubikon@debiani586:~$ file ~/.openjfx/cache/14-ea/libprism_es2.so /home/rubikon/.openjfx/cache/14-ea/libprism_es2.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=02dfabce1a4de8dd8736c851406572640df9a455, not stripped
Also, ich hab das jetzt nicht näher betrachtet… aber möglicherweise ist das i586 Paket von Liberica mit einem amd64 Java FX unterwegs… und nicht mit einem i586 Java FX.
Das heißt natürlich für die ARM Architektur (?) nix. Aber ich bin gerade nicht zu zuversichtlich. - Die Jungs von nextcloud hatten zuletzt auch ein halbes Jahr lang eiskalt amd64 Windows Binaries auf x86-32 Bit installiert… was natürlich in die Hose ging. “Mogelpackung” wäre jetzt aber ein böses Wort.
ut desint vires, tamen voluntas esse laudendum
Better luck next time
(wenn ich jetzt versuche, auf dem Ding ein OpenJFX nach Anleitung zu bauen, käme -wenn überaupt- i586 raus weil ich von cross-compilern grad nicht genug Ahnung hab. und das i586 hülfe ja auch wieder keinem…)-Guts Nächtle
-
@rubikon du kannst das jar nicht nehmen. Das beinhaltet das OpenJFX mit den 64 Bit libs. Auch wenn du liberica nimmst.
Du musst in der Pom.xml die dependency für OpenJFX löschen und das ganze mit liberica neu bauen. Aber es müssen die Module von liberica OpenJFX dem Build bekannt gemacht werden (Stichwort Module-path). Das ist nicht so ohne weiteres trivial und ich hab mir das nicht angesehen. Aber grundsätzlich sollte es dann mit dem Bauen klappen -
@DerReisende77 sagte in Darstellungsfehler und Ausnahmen unter Raspbian auf Raspberry Pi 4:
du kannst das jar nicht nehmen.[…]
:face_with_head-bandage:
Treffer, versenkt.Man sollte ein Wort für den Moment erfinden, wenn man dachte, etwas hilfreiches gesagt zu haben wofür man sich meinetwegen sogar Mühe gegeben hat und dann einerseits erkennt, dass ebendieses Gesagte völliger Käse war und man andererseits gleichzeitig sieht, dass man schon vorher darauf hingewiesen worden war und für die meinetwegen sogar deutlichen Zeichen/ ausdrücklichen Worte einfach blind war.
Wahrscheinlich ist der Wurm, der bei mir drin ist aber so groß, dass es dieses Wort längst gibt und ich es nicht mal kenne.
Qemu, Raspbian, Maven… Vor mir liegt grad eine weitere verschlossene Büchse mit der Aufschrift “Pandora”. Ich glaube, ich lass die Mal zu und halte mich insgesamt von solchen Dosen besser fern .
Ich möchte mich dafür entschuldigen, Deine Zeit verschwendet zu haben.
-
@rubikon naja man sollte die Flinte nicht immer gleich ins Korn werfen. Der Ansatz wäre ja auch sinngemäß anwendbar für deine 32 Bit Versuch, sollte das dortige liberica auch OpenJFX 13 mitliefern. Ggf ist dann auch eine 32 Bit Version von MV realisierbar.
Aber ich gebe zu dass sich Java in den letzten Jahren auf dem Bereich Desktop nicht zum positiven entwickelt hat. Das wird immer mehr ein echt komplizierter Mist. Vorbei sind die Tage „Write once, run everywhere”
-
@beta-tester ich hab noch nie einen Raspberry Pi aus der Nähe gesehen und von dem Teil 0 Ahnung. Außerdem bin ich ein großes Bisschen zu faul, um mich in QEMU einzuarbeiten und den RPi quasi auf meinem PC zu emulieren.:face_with_stuck-out_tongue_closed_eyes:
Daher meine Frage: Sehe ich das richtig, dass das Liberica JDK 11.0.6 für Linux ARM v7 & v8 32 bit HardFloat auf Der Gerät laufen würde?
Weil wenn ja,
dann wäre -mal im Fieberwahn ins Blaue phantasiert- :crazy_face: :crazy_face: (m)ein Eclipse auf einem amd64 Windows 10,- gesetzt den Fall, es wäre in der Lage, MV 13.6 für Win32 zu bauen…
…es wäre
- mit einem entsprechend gefütterten Maven Repository mit obigem OpenJDK+FX und
- einer halben Zeile Anpassung am MV Maven build-script
dann möglicherweise vielleicht eventuell in der Fieber-Theorie ebenfalls in der Lage quasi als…
…“Cross-Compiler” ist für Bytecode halt das falsche Wort… :face_with_hand_over_mouth:
ein MediathekView.jar zusammenzupacken mit enthaltenen 32 Bit JavaFX Bibliotheken :thumbs_up_light_skin_tone: für ARM v7 & v8 32 bit - und damit für RPi mit 32 Bit OS ???Hätte ich so ein MediathekView.jar… für ARM 32 bit :flexed_biceps_light_skin_tone: , vorausgesetzt ich käme zunächst mit dem für mich testbaren Win32 Build durch :crazy_face: :crazy_face: - dann könnte ich es halt mangels RPI bei ich nicht testen… - und es hätte nichts mit einem offiziellen MV release zu tun. – Ich wüsste nicht mal, wie ich Dir die -keine Ahnung- irgendwas in der Größenordnung von 70 MB oder so Datei zukommen lassen könnte.
Vorausgesetzt, Du wärst bereit auf Verdacht ein paar hundert MB runterzuladen die -und das kann bei Fieberwahn-Phantasien leicht sein!- nichts anderes sein könnten als ein Haufen Nullen und Einsen für die Tonne…Na, sa leis! Bobby still! wosch is?
-
@beta-tester so weit ich es verstanden habe, hast Du ein 32-Bit Betriebssystem auf Linux-Basis für die ARM v7 oder v8 Architektur. seit MV 13.3 bestehen MV Builds
- für Linux und Windows
- zum einen Teil aus plattformunabhängigen .class Dateien
- aber zum anderen Teil eben aus plattformabhängigen .so Dateien (Linux) bzw. .dll Dateien (Windows)
- Wie gesagt ist der offizielle MV 13.3+ Build für Linux für eine 64-bit Plattform.
Möglicherweise sind die von Dir gezeigten issues und Darstellungsprobleme auf Deinem 32-Bit Gerät hier ihren Ursprung haben. Ich kann Dir nicht sagen, ob die z.B. laut MV maven build script zum Erstellen der MV-Pakete von u.a. org.openfx genommene Archiv zusätzlich einen Konflikt zwischen x86-64 und der ARM Architektur haben.
Für mich klingt das ein bißchen so, als würde man in einen TDI eines Ingolstädter Autobauers einen Ottomotor eines in München ansässigen Motorenherstellers einbauen - muss ja passen, kommt ja beides aus Bayern… Hauptsache es dreht sich was.
Wie Du im obigen Link zu org.openjfx siehst, kriegt man dort nur plattformabhängige JavaFX Pakete. Für Linux und für Windows sind die jeweils nur für 1 Plattform gebaut, und zwar mit 64 Bit (amd64?) Solche fertigen 32-Bit Maven Pakete gibt’s -im Moment- nicht.
Was es inzwischen aber gibt -und ab hier verlassen wir den von den MV-Entwicklern supporteten Bereich!- sind einige OpenJDK, die JDK Installer etc. mit JavaFX für verschiedene Plattformen anbieten. Win32 (i586, i686) und Linux ARM v7&v8 32-Bit gehören inzwischen zum Angebot. So, mit diesen Installern, funktioniert der offizielle Build-Prozess der MV-Pakete aber nicht.
Ja, man kann sich spielen und es anpassen. Nein, dem MV-Entwickler ist nicht langweilig.
Nun habe ich mir in den letzten Tagen -eigentlich für Win32- mal angeschaut, was man machen muss, um MV 13.6 gegen JavaFX 11.0.6 aus diesen Installern von Zulu bzw. Liberica zu bauen. Der Build-Prozess ist erfolgreich und bei mir läuft der Win32 Build. Er ist aber bis auf 1x Durchklicken im Wesentlichen ungetestet.
Ich habe dann auch in meinem Eclipse unter Win64 mit dem Win32 javac von Liberica .class Files erzeugen lassen und das ganze mit den JavaFX Java Modulen (jmod) von Liberica für Linux-arm32 gepackt (also nicht Win32 .dlls sondern linux-arm32 .so in das MediathekView.jar reinschrauben lassen).
Ich kann mir vorstellen, dass für Deinen RPi dieser I-N-O-F-F-I-Z-I-E-L-L-E Build geeignet sein könnte. Daher lege ich es mal, falls Du magst, bis nächsten Freitag hierher. Vielleicht magst Du ja einen Test machen und probierst es einfach mal aus. Bitte rufe das .jar File mit dem Liberica JDK 11.0.6 für linux-arm32 auf.
Unter Win32
C:\OpenJDK\Liberica...\bin\java -Xmx1G --add-exports javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED -jar MediathekView.jar
(der Export wird unter Win32 für den Slider im Filterdialog benötigt)
Der Unterschied zwischen meinem damaligen Vorgehen und dem aktuellen ist: das MV.jar wird nun von vornherein gegen die zur Laufzeit verwendeten Bibliotheken gebaut und mit diesen verpackt. Nicht mehr wie früher, mit irgendwas gebaut und mit irgendwas anderem betrieben.
Für linux-arm32 halt die große Unbekannte: genügt es, mit Windows gebaute .class mit den linux-arm32 Binaries zu verpacken. Keine Gewähr - aber wegen meinem Spieltrieb hab ich’s einfach mal versucht.
Danke an @DerReisende77 für wesentliche Tips, so weit zu kommen!
edit: update von 11.0.5 auf 11.0.6
-
hallo @rubikon verzeihung, dass ich mich jetzt erst wieder melde…
ich habe jetzt mal die bellsoft-jdk11.0.6+10-linux-arm32-vfp-hflt-full.deb installiert und deine MediathekView_linux-arm32_11.0.6.jar ausgeführt.
es kommen fast keine darstellungsfehler und fast keine ausnahmen mehr.der einzige darstellungsfehler ist die unlesbar kleine schriftgröße an vielen stellen:
$ dpkg --get-selections | grep java bellsoft-java11-full install
$ java --version openjdk 11.0.6 2020-01-15 LTS OpenJDK Runtime Environment (build 11.0.6+10-LTS) OpenJDK 32-Bit Server VM (build 11.0.6+10-LTS, mixed mode)
$ java -Xmx1G --add-exports javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED -jar MediathekView_linux-arm32_11.0.6.jar . Portable Mode: false . Programmstart: 21.01.2020 07:03:18 . Version: 13.6.0 . === JavaVM Parameter === -Xmx1G --add-exports=javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED . ======================== . Verzeichnis Einstellungen: /home/pi/.mediathek3 . Konfig wurde gelesen! WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by impl.org.controlsfx.ReflectionUtils (file:/home/pi/Downloads/MediathekView_linux-arm32_11.0.6.jar) to method com.sun.javafx.css.StyleManager.getInstance() WARNING: Please consider reporting this to the maintainers of impl.org.controlsfx.ReflectionUtils WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release (java:7486): Gtk-CRITICAL **: 07:03:29.319: IA__gtk_window_resize: assertion 'height > 0' failed . Liste Filme gelesen am: 21.01.2020, 07:03 . erstellt am: 20.01.2020, 21:59 . Anzahl Filme: 325433 . Die Filmliste ist 543 Minuten alt . MVHttpClient: Proxy not configured . . Alte Liste erstellt am: 20.01.2020, 21:59 . Anzahl Filme: 325433 . Anzahl Neue: 295 . Filmliste laden (Netzwerk) . Filme in Downloads eintragen . ------------------------------------------------------- . Einstellungen sichern . Einstellungen wurden heute schon gesichert . ------------------------------------------------------- . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet . MediaDB schreiben (0) Dateien : . --> Start Schreiben nach: /home/pi/.mediathek3/mediadb.txt . --> geschrieben! . Liste Filme gelesen am: 21.01.2020, 07:04 . erstellt am: 20.01.2020, 23:59 . Anzahl Filme: 323548 . Liste Kompl. gelesen am: 21.01.2020, 07:04 . Liste Kompl erstellt am: 20.01.2020, 23:59 . Anzahl Filme: 323548 . . Jetzige Liste erstellt am: 20.01.2020, 23:59 . Anzahl Filme: 323548 . Anzahl Neue: 1670 . . Filme schreiben (323548 Filme) : . --> Start Schreiben nach: /home/pi/.mediathek3/filme.json . --> geschrieben! . Write duration: 10546 ms . Filme in Downloads eintragen . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at mediathek.gui.bandwidth.BandwidthMonitorController$1.lambda$0(BandwidthMonitorController.java:80) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428) at java.base/java.security.AccessController.doPrivileged(Native Method) at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427) at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$11(GtkApplication.java:277) at java.base/java.lang.Thread.run(Thread.java:834) . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet . ################################################################################ . --> Beginn: 21.01.2020 07:03:18 . --> Fertig: 21.01.2020 07:11:28 . --> Dauer: 8.163 min . ################################################################################
ich habe mal die offizielle “normale” MediathekView jar ausprobiert und siehe da, die wirft gar keine ausnahme:
$ java -Xmx1G --add-exports javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED -jar MediathekView.jar . Portable Mode: false . Programmstart: 21.01.2020 07:29:52 . Version: 13.5.1 . === JavaVM Parameter === -Xmx1G --add-exports=javafx.controls/com.sun.javafx.scene.control.inputmap=ALL-UNNAMED . ======================== . Verzeichnis Einstellungen: /home/pi/.mediathek3 . Konfig wurde gelesen! WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by impl.org.controlsfx.ReflectionUtils (file:/media/pi/99-USB/MediathekView/MediathekView.jar) to method com.sun.javafx.css.StyleManager.getInstance() WARNING: Please consider reporting this to the maintainers of impl.org.controlsfx.ReflectionUtils WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release (java:11603): Gtk-CRITICAL **: 07:30:02.959: IA__gtk_window_resize: assertion 'height > 0' failed . Liste Filme gelesen am: 21.01.2020, 07:30 . erstellt am: 20.01.2020, 23:59 . Anzahl Filme: 323548 . Die Filmliste ist 450 Minuten alt . MVHttpClient: Proxy not configured . Keine aktuellere Liste verfügbar . Filme in Downloads eintragen . ------------------------------------------------------- . Einstellungen sichern . Einstellungen wurden heute schon gesichert . ------------------------------------------------------- . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet . MediaDB schreiben (0) Dateien : . --> Start Schreiben nach: /home/pi/.mediathek3/mediadb.txt . --> geschrieben! . Daten Schreiben nach: /home/pi/.mediathek3/mediathek.xml . Config Schreiben nach: /home/pi/.mediathek3/mediathek.xml startet . Config Schreiben beendet . ################################################################################ . --> Beginn: 21.01.2020 07:29:52 . --> Fertig: 21.01.2020 07:31:32 . --> Dauer: 1.668 min . ################################################################################
also wenn ich die schriftgröße irgendwie ändern könnte wär alles perfekt, und das ohne eine spezielle version für RaspbarryPi von MediathekView zu benutzen.
-
@beta-tester
GDK_SCALE=2 java -Xmx1G -Djdk.gtk.version=3 -jar…Libgtk3 muss dafür installiert sein und sollte die kleinen Komponenten lesbar hoch skalieren.
-
@DerReisende77
Danke für den tipp mit dem scale, aber das bläst nur die Gtk elemente auf das dopperlte auf, aber die schriften die vorher unlesbar klein gewesen waren, sind immer noch genauso winzig wie ohne dem scale…
EDIT: gibt es einen scale parameter nur für javaJFX ?