เกิดอะไรขึ้น
ปัญหาเช่นนี้เกี่ยวข้องกับกรอบการจับคู่แอปพลิเคชันของ Unity เพื่อลดความซับซ้อนของรายละเอียดทางเทคนิคหน้าต่างโปรแกรมและแอพพลิเคชั่นเป็นสองสิ่งที่แยกต่างหากสำหรับ Ubuntu Ubuntu ต้อง 'เดา' ว่าแอปพลิเคชันใดเป็นเจ้าของหน้าต่างเฉพาะ และบางครั้งการเดาที่ล้มเหลวและเครื่องหมายคำถามปรากฏในตัวเรียกใช้งาน
ความล้มเหลวอาจเกิดจาก:
- ข้อผิดพลาดในBAMF (กรอบการจับคู่แอปพลิเคชันดังกล่าวข้างต้น)
- คำอธิบายแอปพลิเคชันผิดพลาด(ไฟล์ '.desktop')
- ไม่มีคำอธิบายแอปพลิเคชันใด ๆ เลย ไฟล์เรียกทำงานที่เรียกใช้ windows ไม่ได้มีข้อมูลเมตานี้โดยกำเนิด
แอพลิเคชันที่แสดงในคำถาม (KeePass2) ทนทุกข์ทรมานจากปัญหาชนิดที่ 1 ที่ได้รับการรายงานการติดตามข้อผิดพลาดที่เหมาะสม
ตัวอย่างของปัญหา
ตัวอย่างด้านล่างนี้เป็นข้อมูลทางเทคนิคโดยมีวัตถุประสงค์เพื่อโปรแกรมเมอร์ที่ต้องการให้แอปพลิเคชันของตัวเองแสดงผลอย่างถูกต้องในตัวเรียกใช้งาน Ubuntu
ปัญหา 3 - ไม่มีคำอธิบายแอปพลิเคชัน
เพื่อให้แอปพลิเคชันรวมเข้ากับ Unity - กล่าวคือสามารถค้นหาได้ใน Dash และวางไว้ในตัวเรียกใช้งาน - ต้องมีรายการเดสก์ท็อป รายการดังกล่าวจะอยู่ใน/usr/share/applications/
, /usr/local/share/applications/
และ$HOME/.local/share/applications/
(หลังสองคนสำหรับซอฟต์แวร์บุคคลที่สามทั้งระบบและใช้งานเพียงตามลำดับ) ลงท้ายด้วย.desktop
ส่วนขยายและทำตามรูปแบบพื้นฐานนี้:
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
รายการนี้เริ่มต้นโปรแกรมโดยเรียกใช้Exec
ไฟล์ที่เรียกทำงานได้ เมื่อใดก็ตามที่โปรแกรมนั้นแสดงหน้าต่างหรือไดอะล็อก Unity จะสังเกตเห็นว่าคำสั่งของแอปพลิเคชันนี้ "เป็นของ" ที่สามารถเรียกใช้งานได้และใช้คำสั่งที่กำหนดName
และIcon
ในตัวเรียกใช้งาน
นี่คือตัวอย่างของแบร์โบน สเปคอย่างเป็นทางการครอบคลุมคุณลักษณะขั้นสูงมาก
ปัญหา 2 - คำอธิบายแอปพลิเคชันผิดพลาด
ให้เราสมมติว่าmy_app.desktop
มีอยู่ในไดเรกทอรีแอปพลิเคชันที่ถูกต้อง แต่:
/file/path/of/my/icon
ไม่มีอยู่ในระบบไฟล์
/file/path/of/my/icon
ไม่ใช่ภาพ
- รายการใช้ไวยากรณ์ที่ไม่ถูกต้องหรือแท็กที่ไม่ถูกต้อง
ในกรณีใด ๆ ข้างต้น Ubuntu จะไม่สามารถแสดงรายการหน้าต่างแอปพลิเคชั่นในตัวเรียกใช้งานได้อย่างถูกต้อง
ปัญหาที่ 1 - ข้อผิดพลาดใน BAMF
ตั้งแต่ Ubuntu 11.10 BAMF มีข้อผิดพลาดจำนวนหนึ่งที่ป้องกันการจับคู่แอปพลิเคชันที่ถูกต้อง ข้อผิดพลาดทั่วไป (ชั่วคราว) รวมถึง:
Exec
เส้นทางการเป็นผู้เชื่อมโยงสัญลักษณ์มากกว่าแฟ้มปกติ
- ไฟล์สั่งการเป็นสคริปต์ที่เรียกใช้ไฟล์ปฏิบัติการหลัก
ในกรณีเหล่านี้โปรแกรมเมอร์ไม่มีทางเลือกนอกจากใช้วิธีแก้ปัญหาเช่นการลบการเชื่อมโยงสัญลักษณ์ที่เป็นนามธรรมหรือการเชื่อมโยงไปยังไฟล์ปฏิบัติการโดยตรง ข้อกำหนดเหล่านี้ไม่จำเป็นต้องมีจากสิ่งเหล่านี้