Помилка LSOpenURLsWithRole () з помилкою -10810 - Завантажена програма не запускається


14

Я намагаюся запустити додаток, завантажене з Інтернету (наприклад, Jabref), але, здається, воно виходить з ладу. Коли я намагаюся відкрити його подвійним клацанням на ньому, нічого не відбувається. Коли я використовую термінал, я отримую таке повідомлення:

Помилка LSOpenURLsWithRole () з помилкою -10810 для файлу ... / xxxx.app

Я спробував декілька пропозицій, які я знайшов тут, як змінити дозволи та змінити файл Info.plist, але нічого не працює.

Оскільки це програма Java, я намагався запустити її через термінал

java -cp ОСНОВНИЙ КЛАССПАТ "

і це чудово працює.

Зазначимо лише, що я отримую цю помилку не лише в цьому додатку, але і в кількох інших програмах.

Заздалегідь спасибі.

Відповіді:


8

LSOpenURLsWithRole - це функція, яка використовується для асоціації файлу з програмою. Файл, на який ви двічі натискаєте, насправді не програма, а файл даних.

Так, наприклад, при подвійному клацанні на текстовому документі запускається програма TextEdit або інша пов’язана програма.

Потрібно пов’язати його з режимом виконання Java, припускаючи, що він встановлений.

Якщо ви клацніть правою кнопкою миші на файл і виберіть Отримати інформацію, на інформаційній панелі є розділ під назвою "Відкрити за допомогою:". Це має бути встановлено на час виконання Java.


3

Для тих, хто приходить сюди, хто бачить цю проблему для не-Java програми: я отримував таке ж повідомлення про помилку при спробі запуску .app-файлу, який містить виконуваний файл Mach-O. Спроба запуску виконуваного файлу безпосередньо з пакета (наприклад Foo.app/Contents/MacOS/bar) дала мені набагато кращу помилку, вказуючи на те, що мені не вистачає динамічної залежності від lib:

dyld: Library not loaded:/usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets

Щось спробувати, якщо ви бачите цю помилку.


1

З цією помилкою я також стикався з програмою Java, яку я намагався розгорнути. Я не міг змусити його працювати на своєму другому Mac: 10.11.6. Я всюди шукав відповіді, але жодного разу не знайшов, тому я ставлю це тут, щоб інші принесли користь. Запустивши системну консоль, я виявив повідомлення про помилку про те, що "відкрита" програма не може знайти програму "JavaApplicationStub" у пакеті Зміст. Проблема в тому, що мій пакет використовував "JavaAppLauncher" для запуску. Я щойно змінився від використання старого Apple JarBundler на Oracle AppBundler, щоб я міг підписати додаток, а назва програми запуску різна. Ключовим тут є те, що новий пакет (версія 7.1.1) замінював старий (версія 7.1.0) і мав ту саму назву програми. Старий використовував для запуску JavaApplicationStub.

Здається, властивості Info.plist для програми були кешовані, і вона використовувала несвіжі значення для запуску нового пакета. Не знаю, чи кеш очищений під час виходу або перезавантаження, чи це виправлено в новіших версіях OS X, але мені доведеться це працювати безперебійно для всіх кінцевих користувачів.

Я вирішив проблему, включивши номер версії у назву програми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.