Como eu diagnostico “Ocorreu um erro ao iniciar o aplicativo”?

24

Eu criei um arquivo my-app.desktop para um programa que eu escrevi. Quando clico nele duas vezes, recebo a mensagem de erro " Ocorreu um erro ao iniciar o aplicativo ". Como posso obter informações mais detalhadas sobre o problema?

Eu vi uma referência a uma seção de "detalhes" da caixa de diálogo, mas não há nada parecido com aquele presente no que vejo. Se eu estivesse no meu Mac, eu abriria o aplicativo Console para ver se algum erro estava registrado, mas não aprendi nada de semelhante no Ubuntu.

(Note que ao contrário de outras perguntas com título semelhante, não estou perguntando o que há de errado com esse arquivo .desktop específico; quero saber como descobrir em geral.)

    
por Kevin Reid 20.03.2014 / 18:48

7 respostas

15

Aqui está um truque que você pode usar. Crie um script de wrapper para o seu aplicativo que irá iniciá-lo e capturar a saída de erro:

#!/usr/bin/env bash

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

Salve isso como ~/foo.sh e torne-o executável com chmod +x ~/foo.sh . Agora, aponte seu lançador de área de trabalho para ele. Algo como:

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

Isso redirecionará as mensagens de erro para ~/myapp.log e você poderá examiná-las quando desejar. Você pode usar 2>>~/myapp.log se quiser que mensagens de erro sucessivas sejam anexadas ao arquivo em vez de sobrescrevê-lo.

Como um aparte, a razão pela qual o $PATH é diferente é porque você provavelmente está configurando seu $PATH em ~/.bahsrc , que não é lido pelo ambiente gráfico. Também é uma má idéia já que o $PATH será definido toda vez que você abrir um novo terminal e isso for desnecessário. Use ~/.profile para isso. Para obter mais detalhes sobre quais arquivos são lidos, consulte aqui e, para saber mais sobre qual arquivo deve ser usado para o quê, consulte aqui .

    
por terdon 20.03.2014 / 20:01
12

Encontrou uma resposta para esta pergunta aqui: link

Tente isto:

desktop-file-validate my-app.desktop

Ele gera erros no arquivo .desktop . Por exemplo, o meu retornou:

error: first group is not "Desktrop Entry"

Então, uma vez que eu corrigi o erro de digitação para Desktop Entry , o script foi executado com sucesso.

    
por Jimmy 13.09.2017 / 18:02
7

Ao executar o seguinte comando no terminal:

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

Tenho certeza de que você descobrirá se há um erro ou não no seu comando atribuído ao campo Exec de dentro do seu arquivo .desktop.

    
por Radu Rădeanu 20.03.2014 / 20:56
3

geralmente, o terminal (saída) fornece muitas informações úteis, tanto no aplicativo quanto no arquivo da área de trabalho. Um exemplo: se eu executar meu aplicativo a partir do terminal, digitando o comando no terminal, o aplicativo é iniciado.

No entanto, se houver algo errado, você pode esperar uma saída como:

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$ 

que fornece muitas informações úteis, até mesmo a linha em seu aplicativo que causa o erro. (Eu estraguei tudo de propósito)

O mesmo com o arquivo da área de trabalho, basta abrir um terminal no diretório do arquivo .desktop e arrastá-lo para o terminal. Se, por exemplo, você remover a linha Exec= de um arquivo .desktop, o terminal informará que não pode encontrar o comando a ser executado.

Para testar se o aplicativo apresenta um erro, basta executar o que você colocou após a string Exec= .

A saída do terminal é geralmente muito específica e útil em relatórios de erros, como aqui .

    
por Jacob Vlijm 20.03.2014 / 19:24
0

Quando eu realmente não consigo entender, eu:

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

Em seguida, clique com o botão direito do mouse no ícone padrão criado e aponte para um gráfico melhor.

    
por 09.02.2019 / 22:20
0

Isso pode ajudar outras pessoas - essa é a especificação oficial dos arquivos do iniciador de área de trabalho

A seção importante é: Teclas de entrada de área de trabalho reconhecidas - que mostram quais valores são necessários.

    
por Tony Suffolk 66 15.06.2014 / 19:50
-1

Para mim, o problema foi a falta da linha Icon= (que parece ser uma exigência estúpida para um lançador de trabalho). Meu arquivo .desktop completo agora se parece com:

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

O que não é particularmente robusto para alterações no usuário, mas seja qual for.

    
por tsbertalan 22.04.2014 / 02:30