Как мне диагностировать «Произошла ошибка при запуске приложения»?

Я создал файл my-app.desktop для программы, которую написал. Когда я дважды щелкаю по нему, я получаю сообщение об ошибке « Произошла ошибка при запуске приложения ». Как я могу получить более подробную информацию о проблеме?

Я видел ссылку на раздел «детали» диалогового окна, но в том, что я вижу, нет ничего подобного. Если бы я был на своем Mac, я бы открыл консольное приложение, чтобы посмотреть, не регистрировались ли какие-либо ошибки, но я не узнал ничего подобного в Ubuntu.

(Обратите внимание, что в отличие от других вопросов с аналогичным названием, я не спрашиваю, что не так с этим конкретным файлом .desktop; я хочу знать, как это выяснить в общем.)

26
задан 20 March 2014 в 21:48

7 ответов

Вот прием, который можно использовать. Создайте сценарий обертки для своего приложения, которое запустит его и получит вывод ошибок:

#!/usr/bin/env bash

## Launch 'yourapp' and capture its standard error output
/path/to/yourapp 2>~/myapp.log

Сохраняют это как ~/foo.sh и делают его исполняемым файлом с chmod +x ~/foo.sh. Теперь, укажите на свое настольное средство запуска на него вместо этого. Что-то как:

[Desktop Entry]
Version=2.0
Type=Application
Exec=/home/kevin/foo.sh
Terminal=true
Comment=My app!

, Который перенаправит любые сообщения об ошибках к ~/myapp.log и можно исследовать их на досуге. Можно использовать 2>>~/myapp.log, если Вы хотите, чтобы последовательные сообщения об ошибках были добавлены в файл вместо того, чтобы перезаписать его.

<час>

Как в стороне, причина, которая эти $PATH отличается, состоит в том, потому что Вы, вероятно, устанавливаете Ваш $PATH в ~/.bahsrc, который не читается графической средой. Это - также плохая идея, так как эти $PATH будет установлен каждый раз, когда Вы открываете новый терминал, и это бесполезно служебный. Используйте ~/.profile для этого вместо этого. Для получения дополнительной информации, на котором читаются файлы, когда видят здесь и для больше, на котором файл должен использоваться, для того, какой, см. здесь .

0
ответ дан 20 March 2014 в 21:48

Путем выполнения следующей команды в терминале:

awk -F= '/Exec=/{system($2)}' your_desktop_file.desktop

я уверен, что Вы узнаете, существует ли ошибка или не в Вашей команде, присвоенной Exec поле изнутри Вашего .desktop файла.

0
ответ дан 20 March 2014 в 21:48

обычно, терминал (-вывод) дает Вам большую полезную информацию, обоих на приложении, а также файле на рабочем столе. Пример: если я запускаю свое приложение от терминала, вводя команду в терминале, приложение запускается.

Однако, если существует что-то не так, можно ожидать вывод как:

Traceback (most recent call last):
  File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa    /qle-2.1.2/code/qle_quicklisteditor", line 4044, in <module>
    MainWindow()
  File "/home/jacob/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa   /qle-2.1.2/code/qle_quicklisteditor", line 51, in __init__
    self.load_sectons()
AttributeError: 'MainWindow' object has no attribute 'load_sectons'
jacob@Jacobwerkkamer:~/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa   /qle-2.1.2/code$ 

, который дает Вам большую полезную информацию, даже строка в Вашем приложении, которое вызывает ошибку. (Я испортил его нарочно)

то же с файлом на рабочем столе, просто откройте терминал в каталоге .desktop файла и перетащите его на терминале. Если Вы, например, удалите Exec= строка из .desktop файла, то терминал скажет Вам, что это не может найти, что команда выполняется.

, Чтобы протестировать, если приложение дает ошибку, просто выполненную, что Вы помещаете после эти Exec= строка.

терминальный вывод обычно очень конкретен и полезен в отчетах об ошибках, как здесь .

0
ответ дан 20 March 2014 в 21:48

Это могло бы помочь другим людям - это официальная спецификация настольных файлов средства запуска

, важный раздел: Распознанные настольные ключи записи - который показывает Вам, в каких значениях Вы нуждаетесь.

0
ответ дан 20 March 2014 в 21:48

Для меня проблемой было отсутствие Icon= строка (который походит на глупое требование для рабочего средства запуска). Мой полный .desktop файл теперь похож:

[Desktop Entry]
Name=LiClipse
Comment=Variant of Eclipse
Exec=/home/tsbertalan/bin/liclipse
Terminal=true
Type=Application
Icon=/home/tsbertalan/usr/liclipse/icon.xpm

, Который не особенно устойчив к изменениям в пользователе, но безотносительно.

0
ответ дан 20 March 2014 в 21:48

Найденный ответом на этот вопрос здесь: https://Попытка askubuntu.com/a/836842

это:

desktop-file-validate my-app.desktop

Это производит ошибки в Вашем .desktop файл. Например, возвращенная шахта:

error: first group is not "Desktrop Entry"

Поэтому, после того как я исправил опечатку к Desktop Entry, сценарий работал успешно.

14
ответ дан 20 March 2014 в 21:48
  • 1
    Ну, был на самом деле один случай, где я изменил конфигурационный файл, я didn' t получают то, что я хотел до перезапуска, который я нашел довольно раздражающим потому что это didn' t даже говорят мне, что этому был нужен перезапуск!: D –  10 September 2015 в 07:21

Когда я действительно не могу понять это, я:

cd ~/Desktop
ln -s /my/binary/thatIwanttorun mybinary

щелчок правой кнопкой Then по значку по умолчанию это создается и точка к лучшей диаграмме.

0
ответ дан 8 October 2019 в 11:00

Другие вопросы по тегам:

Похожие вопросы: