Кодовое имя исключения ввода / вывода одного медиафайла в Arch Linux

#codenameone #media-player

#codenameone #медиаплеер

Вопрос:

Я разрабатываю приложение для Android, которое я почти закончил на Ubuntu, и которое получает последний штрих в Arch Linux.

Я переустановил Java и Eclipse, и проект работает без проблем, за исключением того, что медиафайлы не могут быть выполнены, даже если все классы одинаковые, а медиафайлы находятся в одном и том же месте.

Код точно такой же, изменилась только платформа. Я пробовал как с open-jdk-8, так и с open-jdk-11.

Это код из проекта тестирования:

     Form hi = new Form("Hi World", BoxLayout.y());
    Button buttonSound = new Button("Play");
    buttonSound.addActionListener(l -> {
        InputStream inputStream = Display.getInstance().getResourceAsStream(getClass(), "/children-hooray.wav");
        try {
            Media media = MediaManager.createMedia(inputStream, "audio/wav");
            media.play();
        } catch (IOException e) {
            e.printStackTrace();
        }
    });
    hi.add(buttonSound);
    hi.show();
 

введите описание изображения здесь

При загрузке консоли вывод:

 Adding CEF to classpath
Found theme.css file.  Watching for changes...
CSS> Retina Scale: 1.0
CSS> Using stateful mode. Use -help flag to see options for new stateless mode.
CSS> Looks like this CSS file needs CEF on classpath... adding it now, and retrying...
CSS> Adding CEF to classpath
Retina Scale: 1.0
CSS> Retina Scale: 1.0
CSS> Using stateful mode. Use -help flag to see options for new stateless mode.
CSS> Updating merge file /home/rainer/eclipse-workspace/A1_Test_En/css/theme.css.merged
CSS> Starting watch thread to watch [/home/rainer/eclipse-workspace/A1_Test_En/css/theme.css]
CSS> Compiling /home/rainer/eclipse-workspace/A1_Test_En/css/theme.css.merged to /home/rainer/eclipse-workspace/A1_Test_En/src/theme.res
CSS> File has not changed since last compile.
CSS> CSS file successfully compiled.  /home/rainer/eclipse-workspace/A1_Test_En/src/theme.res
 

и трассировка стека такова :

     Adding CEF to classpath
    Retina Scale: 1.0
    java.io.IOException
    at com.codename1.impl.javase.JavaSEPort.createMedia(JavaSEPort.java:8506)
    at com.codename1.ui.Display.createMedia(Display.java:3597)
    at com.codename1.media.MediaManager.createMedia(MediaManager.java:308)
    at com.codename1.media.MediaManager.createMedia(MediaManager.java:226)
    at com.mycompany.myapp.Main.lambda$1(Main.java:65)
    at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:349)
    at com.codename1.ui.Button.fireActionEvent(Button.java:687)
    at com.codename1.ui.Button.released(Button.java:728)
    at com.codename1.ui.Button.pointerReleased(Button.java:835)
    at com.codename1.ui.LeadUtil.pointerReleased(LeadUtil.java:153)
    at com.codename1.ui.Form.pointerReleased(Form.java:3817)
    at com.codename1.ui.Component.pointerReleased(Component.java:4710)
    at com.codename1.ui.Display.handleEvent(Display.java:2359)
    at com.codename1.ui.Display.edtLoopImpl(Display.java:1244)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:1162)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
 

Комментарии:

1. Если вы посмотрите в jar, правильно ли упакован там файл?

2. Я сгенерировал новую банку, и, к сожалению, проблема сохраняется… пожалуйста, ознакомьтесь с моим обновленным запросом

3. Я только что создал тестовый проект, который имеет ту же проблему. Вопрос был соответствующим образом обновлен.

4. Используется ли / загружается ли CEF на новой машине? Видите ли вы другие распечатки, кроме исключения?

5. При попытке использования zulu вам необходимо удалить каталог CEF, чтобы принудительно запустить конвейер FX

Ответ №1:

С помощью CN1 мне наконец удалось установить ZuluFx и медиафайлы, работающие в Arch Linux. Я публикую это на случай, если мой подход может быть полезен другим:

  • Загрузите форму ZuluFx здесь (я решил установить Java версии 11, но есть еще много других);
  • Извлеките его в этот каталог: /usr/lib/jvm/zulu11.45.27-ca-fx-jdk11.0.10-linux_x64;
  • Удалите/ переименуйте каталог /home/user/.codenameone/cef;
  • Измените версию Java для проекта, следуя приведенному здесь руководству: Откройте окно Eclipse — Настройки -> Установленная JRE -> Добавить -> Стандартная виртуальная машина

Эта статья CN1 также полезна для чтения.

Комментарии:

1. Эта проблема должна быть решена службой поддержки проекта maven. Таким образом, лучшим обходным путем может быть миграция maven