"অ্যাপ্লিকেশন চালু করার সময় একটি ত্রুটি হয়েছিল" আমি কীভাবে সনাক্ত করব?


26

আমি my-app.desktopলিখেছি এমন একটি প্রোগ্রামের জন্য একটি ফাইল তৈরি করেছি। আমি যখন এটি ডাবল-ক্লিক করি তখন আমি ত্রুটি বার্তাটি পাই " অ্যাপ্লিকেশনটি চালু করার সময় একটি ত্রুটি হয়েছিল "। সমস্যা কী তা সম্পর্কে আমি আরও বিস্তারিত তথ্য কীভাবে পেতে পারি?

আমি ডায়লগ বাক্সের একটি "বিশদ" বিভাগের একটি রেফারেন্স দেখেছি, তবে আমি যা দেখছি তার মধ্যে উপস্থিতির মতো কিছুই নেই। আমি যদি আমার ম্যাকটিতে থাকি, কোনও ত্রুটি লগ হয়েছে কিনা তা দেখার জন্য আমি কনসোল অ্যাপ্লিকেশনটি খুলব, তবে আমি উবুন্টুতে অনুরূপ কিছু শিখি না।

(নোট করুন যে একই ধরণের শিরোনামযুক্ত অন্যান্য প্রশ্নের মতো নয়, আমি এই বিশেষ .ডেস্কটপ ফাইলটির মধ্যে কী কী আছে তা জিজ্ঞাসা করছি না; আমি কীভাবে সাধারণভাবে এটি সন্ধান করব তা জানতে চাই))


1
আমি টার্মিনাল থেকে এক্সিকিউটিটি লাইনটি চালাব এবং আউটপুট আপনাকে কী বলবে তা দেখতে, তবে আপনি কি ডেস্কটপ ফাইলটি ঠিক আছে তা নিশ্চিত? সম্ভবত আপনার এটিও টার্মিনাল থেকে পরীক্ষা করে চালানো উচিত।
জ্যাকব ভিলিজম

@ জ্যাকব যদি "টার্মিনাল থেকে এটি চালানোর" কোনও উপায় থাকে যা স্ট্যাডারকে দরকারী কিছু রাখে, যা এই প্রশ্নের উত্তর তৈরি করবে।
কেভিন রেড

1
@ ইটারডন আমি এটি চেষ্টা করেছিলাম এবং এটি প্রমাণিত হয়েছে যে ( পরবর্তী সমস্যা হিসাবে ) পরিবেশটি যেভাবে গুরুত্বপূর্ণ তার চেয়ে আলাদা ছিল। আমি কীভাবে সাধারণ লঞ্চ প্রক্রিয়া থেকে আরও তথ্য পেতে পারি তা জানতে চাই যাতে আমি কী আলাদা তা অনুমান করি না ।
কেভিন রেড

2
@ ইটারডন এমপিরিলিভাবে, টার্মিনালে এটি চালানো আলাদা - আমি চেষ্টা করেছি এবং এটি আলাদা ছিল (বিশেষত আলাদা 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আপনার .ডেস্কটপ ফাইলটির অভ্যন্তর থেকে ক্ষেত্রের জন্য বরাদ্দ করা আপনার কমান্ডে কোনও ত্রুটি আছে কি না তা আপনি খুঁজে পাবেন ।


5
আমারও একই সমস্যা আমি আপনার কমান্ড এবং আমার.ডেস্কটপ ফাইলটি পুরোপুরি কার্যকর করি। তবে আমি যখন এটিতে ডাবল ক্লিক করি তখন এটি অ্যাপ্লিকেশনটি চালু করতে একটি ত্রুটি ঘটেছিল
সায়ন্তন কোলে

এই উত্তরটি এক ধরণের মজাদার, যেহেতু (যদিও আমি মনে করি না যে এটি শেলের মধ্যে এক্সিকিউটিভ চালানোর চেয়ে কোনও কিছু-বেশি করে না) এটি আমাকে বুঝতে পেরেছিল যে ট্রাইএক্সেক কী আমার সমস্যা ছিল।
মিরি

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$ 

যা আপনাকে প্রচুর দরকারী তথ্য দেয়, এমনকি আপনার প্রয়োগের লাইনটি ত্রুটির কারণ ঘটায়। (আমি এটিকে উদ্দেশ্যমূলকভাবে বিশৃঙ্খলা করলাম)

ডেস্কটপ ফাইলের সাথে একই, ডেস্কটপ ফাইলের ডিরেক্টরিতে কেবল একটি টার্মিনাল খুলুন এবং এটিকে টার্মিনালে টেনে আনুন। যদি আপনি উদাহরণস্বরূপ Exec=একটি .ডেস্কটপ ফাইল থেকে লাইনটি সরিয়ে থাকেন তবে টার্মিনাল আপনাকে জানায় যে এটি কার্যকর করার জন্য আদেশটি খুঁজে পাচ্ছে না।

অ্যাপ্লিকেশনটি কোনও ত্রুটি দেয় কিনা তা পরীক্ষা করতে, Exec=স্ট্রিংয়ের পরে আপনি যা রেখেছেন তা চালান ।

টার্মিনাল আউটপুট সাধারণত খুব নির্দিষ্ট ও বাগ প্রতিবেদনে দরকারী, ভালো হয় এখানে


2
আমি টার্মিনালটি কীভাবে ব্যবহার করব এবং সাধারণভাবে কোনও প্রোগ্রামের প্রবর্তনকে কীভাবে সমস্যা সমাধান করব সে সম্পর্কে আমি জানি। এই পদ্ধতির অনুমান করে, আমার যা জানতে হবে তা হল টার্মিনালে সঠিকভাবে একটি .ডেস্কটপ লঞ্চের শর্তগুলি কীভাবে পুনরুত্পাদন করা যায়
কেভিন রেড

0

এটি অন্য লোকেদের সাহায্য করতে পারে - এটি ডেস্কটপ লঞ্চার ফাইলগুলির আনুষ্ঠানিক বৈশিষ্ট

গুরুত্বপূর্ণ বিভাগটি হ'ল: স্বীকৃত ডেস্কটপ এন্ট্রি কীগুলি - যা আপনাকে দেখায় যে আপনার প্রয়োজনীয় মানগুলি।


0

আমি যখন সত্যিই এটি বুঝতে পারি না, আমি:

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

তারপরে তৈরি হওয়া ডিফল্ট আইকনে ডান ক্লিক করুন এবং আরও ভাল গ্রাফিকের দিকে নির্দেশ করুন।


এবং "সিডি ~ / ডেস্কটপ" এর পরে একটি <সিআর> থাকা উচিত
টম

-1

আমার জন্য, সমস্যাটি ছিল একটি অনুপস্থিত Icon=লাইন (যা একটি ওয়ার্কিং লঞ্চারের জন্য বোকা প্রয়োজন বলে মনে হচ্ছে)। আমার পূর্ণ .ডেস্কটপ ফাইলটি এখন দেখতে দেখতে:

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

যা ব্যবহারকারীর পরিবর্তনের পক্ষে বিশেষত দৃust় নয়, তবে যাই হোক না কেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.