Come diagnosticare "Si è verificato un errore durante l'avvio dell'applicazione"?

22

Ho creato un file my-app.desktop per un programma che ho scritto. Quando faccio doppio clic su di esso, viene visualizzato il messaggio di errore " Si è verificato un errore durante l'avvio dell'applicazione ". Come posso ottenere informazioni più dettagliate su quale sia il problema?

Ho visto un riferimento a una sezione "dettagli" della finestra di dialogo, ma non c'è nulla di simile a quello presente in quello che vedo. Se fossi sul mio Mac, aprivo l'app Console per vedere se sono stati registrati errori, ma non ho appreso nulla di simile su Ubuntu.

(Si noti che a differenza di altre domande dal titolo simile, non sto chiedendo cosa c'è di sbagliato in questo particolare file .desktop; voglio sapere come scoprirlo in generale.)

    
posta Kevin Reid 20.03.2014 - 18:48

6 risposte

14

Ecco un trucco che puoi usare. Crea uno script wrapper per la tua applicazione che lo avvierà e cattura l'output dell'errore:

#!/usr/bin/env bash

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

Salvalo come ~/foo.sh e rendilo eseguibile con chmod +x ~/foo.sh . Ora, punta invece il tuo desktop launcher su di esso. Qualcosa come:

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

Questo reindirizzerà qualsiasi messaggio di errore a ~/myapp.log e potrai esaminarli a tuo piacimento. Puoi utilizzare 2>>~/myapp.log se desideri che i successivi messaggi di errore vengano aggiunti al file anziché sovrascriverli.

Per inciso, il motivo per cui $PATH è diverso è perché probabilmente stai impostando il $PATH in ~/.bahsrc che non viene letto dall'ambiente grafico. È anche una cattiva idea poiché il $PATH verrà impostato ogni volta che apri un nuovo terminale e questo è un sovraccarico inutile. Utilizza invece ~/.profile per questo. Per maggiori dettagli su quali file vengono letti quando vedi qui e per ulteriori informazioni su quale file deve essere usato per cosa, vedi qui .

    
risposta data terdon 20.03.2014 - 20:01
9

Hai trovato una risposta a questa domanda qui: link

Prova questo:

desktop-file-validate my-app.desktop

Emette errori nel tuo file .desktop . Ad esempio mio restituito:

error: first group is not "Desktrop Entry"

Quindi, una volta corretto l'errore di battitura in Desktop Entry , lo script è stato eseguito correttamente.

    
risposta data Jimmy 13.09.2017 - 18:02
6

Eseguendo il seguente comando nel terminale:

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

Sono sicuro che scoprirai se c'è un errore o meno nel tuo comando assegnato al campo Exec all'interno del tuo file .desktop.

    
risposta data Radu Rădeanu 20.03.2014 - 20:56
3

di solito, il terminale (-output) ti dà molte informazioni utili, sia sull'applicazione che sul file desktop. Un esempio: se eseguo la mia applicazione dal terminale, digitando il comando nel terminale, l'applicazione si avvia.

Tuttavia, se c'è qualcosa di sbagliato, puoi aspettarti un risultato del tipo:

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'
[email protected]:~/Bureaublad/werkmap_2.0/uploaded_versions/2.1.2/32_en_ppa   /qle-2.1.2/code$ 

che ti dà molte informazioni utili, anche la riga nella tua applicazione che causa l'errore. (L'ho incasinato apposta)

Lo stesso con il file desktop, basta aprire un terminale nella directory del file .desktop e trascinarlo sul terminale. Se ad esempio rimuovi la riga Exec= da un file .desktop, il terminale ti dirà che non riesce a trovare il comando da eseguire.

Per verificare se l'applicazione fornisce un errore, esegui ciò che hai inserito dopo la stringa Exec= .

L'output del terminale è di solito molto specifico e utile nelle segnalazioni di bug, come qui .

    
risposta data Jacob Vlijm 20.03.2014 - 19:24
0

Questo potrebbe aiutare altre persone - questa è la specifica ufficiale dei file di avvio del desktop

La sezione importante è: Tasti di accesso desktop riconosciuti - che mostrano quali valori sono necessari.

    
risposta data Tony Suffolk 66 15.06.2014 - 19:50
-1

Per me, il problema era una linea mancante Icon= (che sembra uno stupido requisito per un launcher funzionante). Il mio file .desktop completo ora sembra:

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

Che non è particolarmente affidabile per i cambiamenti in utente, ma qualunque cosa.

    
risposta data tsbertalan 22.04.2014 - 02:30

Leggi altre domande sui tag