मैं "एप्लिकेशन लॉन्च करने में कोई त्रुटि थी" का निदान कैसे करूं?


26

मैंने my-app.desktopजो प्रोग्राम लिखा था उसके लिए मैंने एक फाइल बनाई । जब मैं इसे डबल-क्लिक करता हूं, तो मुझे त्रुटि संदेश मिलता है " एप्लिकेशन लॉन्च करने में एक त्रुटि थी "। मुझे समस्या के बारे में अधिक विस्तृत जानकारी कैसे मिल सकती है?

मैंने संवाद बॉक्स के "विवरण" अनुभाग का एक संदर्भ देखा, लेकिन जो मैं देख रहा हूं उसमें ऐसा कुछ भी नहीं है। यदि मैं अपने मैक पर था, तो मैं यह देखने के लिए कंसोल ऐप खोलूंगा कि क्या कोई त्रुटि लॉग की गई थी, लेकिन मैंने उबंटू पर कुछ भी ऐसा नहीं सीखा है।

(ध्यान दें कि अन्य समान-शीर्षक वाले प्रश्नों के विपरीत, मैं यह नहीं पूछ रहा हूं कि इस विशेष .desktop फ़ाइल में क्या गलत है? मैं जानना चाहता हूं कि सामान्य रूप से कैसे पता लगाया जाए।)


1
मैं बस टर्मिनल से एक्सिस लाइन चलाऊंगा और देखूंगा कि आउटपुट आपको क्या बताता है, लेकिन क्या आप सुनिश्चित हैं कि डेस्कटॉप फ़ाइल ठीक है? हो सकता है कि आपको टर्मिनल से भी इसकी जाँच करनी चाहिए और इसे चलाना चाहिए।
जैकब व्लिजम

@ जेकॉब अगर "टर्मिनल से इसे चलाने" का एक तरीका है जो स्टैडर पर कुछ उपयोगी रखता है, तो इस प्रश्न का उत्तर होगा।
केविन रीड

1
@terdon मैंने वह कोशिश की, और यह पता चला कि ( अगली समस्या के रूप में ) पर्यावरण एक तरह से अलग था जो मायने रखता था। मैं जानना चाहता हूं कि सामान्य लॉन्च प्रक्रिया से अधिक जानकारी कैसे प्राप्त की जाए ताकि मुझे अनुमान न हो कि क्या अलग है।
केविन रीड

2
@terdonically, टर्मिनल में इसे चलाना अलग है - मैंने कोशिश की और यह अलग था (विशेष रूप से एक अलग PATH)। मैं यह जानना चाहता हूं कि सामान्य लॉन्च के समान ही वातावरण कैसे प्राप्त किया जाए , लेकिन अधिक नैदानिक ​​जानकारी के साथ।
केविन रीड

2
थोडा अपमानजनक, लेकिन 10 में से 9 बार यह समस्या हवा करती है कि यह विशेष वर्ण है, जैसे रिक्त स्थान, Exec=पथ में। याद रखें, आपको Exec=उद्धरण में और Path=उद्धरण के बिना होना चाहिए ।
बाराफू अल्बिनो

जवाबों:


15

यहां एक तरकीब है जिसका आप उपयोग कर सकते हैं। अपने एप्लिकेशन के लिए एक आवरण स्क्रिप्ट बनाएं जो इसे लॉन्च करेगा और त्रुटि आउटपुट को कैप्चर करेगा:

#!/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इसके बदले इस्तेमाल करें । अधिक जानकारी के लिए कि कौन सी फाइलें यहाँ कब देखी जाती हैं और किस पर किस फ़ाइल का उपयोग किया जाना चाहिए, इसके लिए यहाँ देखें ।


इस तरह से समस्या नहीं मिली, लेकिन आवरण काम कर रहा था, इसलिए मैंने बस आवरण को निष्पादन योग्य रखा।
जैनीस एल्मेरिस

16

इस प्रश्न का उत्तर यहां मिला: /ubuntu//a/836842

इसे इस्तेमाल करे :

desktop-file-validate my-app.desktop

यह आपकी .desktopफ़ाइल में त्रुटियों को उत्पन्न करता है। उदाहरण के लिए मेरा लौटा:

error: first group is not "Desktrop Entry"

इसलिए एक बार जब मैंने टाइपो को ठीक कर Desktop Entryलिया, तो स्क्रिप्ट सफलतापूर्वक चली।


7

टर्मिनल में निम्नलिखित कमांड चलाकर:

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

मुझे यकीन है कि आपको पता चलेगा कि Execआपकी .desktop फ़ाइल के अंदर से आपकी कमान को कोई त्रुटि दी गई है या नहीं ।


5
मुझे भी ऐसी ही समस्या है। मैं आपकी आज्ञा का पालन करता हूं और my.desktop फ़ाइल पूरी तरह से काम करती है। लेकिन जब मैं इसे डबल क्लिक करता हूं, तो पता चलता है कि एप्लिकेशन को लॉन्च करने में एक त्रुटि हुई थी
सायतानन कोली

इस उत्तर, मजाकिया की तरह है के बाद से (भले ही मुझे नहीं लगता कि यह करता है किसी भी-बहुत अधिक चलाने की तुलना में Exec खोल में मूल्य) यह मुझे एहसास बना TryExec कुंजी मेरी समस्या थी।
मृ।

3

आमतौर पर, टर्मिनल (-आउटपुट) आपको बहुत उपयोगी जानकारी देता है, दोनों ही आवेदन पर और साथ ही डेस्कटॉप फ़ाइल। एक उदाहरण: अगर मैं टर्मिनल से अपना एप्लिकेशन चलाता हूं, तो टर्मिनल में कमांड टाइप करके, एप्लिकेशन शुरू होता है।

हालाँकि, अगर कुछ गड़बड़ है, तो आप आउटपुट की उम्मीद कर सकते हैं:

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=स्ट्रिंग के बाद रखते हैं ।

टर्मिनल रिपोर्ट आमतौर पर बग रिपोर्ट्स में बहुत विशिष्ट और उपयोगी होती है, जैसे यहां


2
मुझे पता है कि एक टर्मिनल का उपयोग कैसे करें और सामान्य रूप से एक प्रोग्राम लॉन्च का निवारण कैसे करें। इस दृष्टिकोण को मानते हुए, मुझे जो जानने की आवश्यकता है वह यह है कि टर्मिनल में -desktop लॉन्च की शर्तों को सटीक रूप से कैसे पुन: पेश किया जाए
केविन रीड

0

यह अन्य लोगों की मदद कर सकता है - यह डेस्कटॉप लॉन्चर फ़ाइलों की आधिकारिक कल्पना है

महत्वपूर्ण खंड है: मान्यताप्राप्त डेस्कटॉप एंट्री कीज़ - जो आपको दिखाता है कि आपको किन मूल्यों की ज़रूरत है।


0

जब मैं वास्तव में इसका पता नहीं लगा सकता, तो मैं:

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

फिर अपने द्वारा बनाए गए डिफ़ॉल्ट आइकन पर राइट क्लिक करें और एक बेहतर ग्राफ़िक को इंगित करें।


और "cd ~ / डेस्कटॉप" के बाद एक <cr> होना चाहिए
टॉम 21

-1

मेरे लिए, समस्या एक लापता थी 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

जो विशेष रूप से उपयोगकर्ता में परिवर्तन के लिए मजबूत नहीं है, लेकिन जो भी हो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.