LSOpenURLsWithRole()がエラー-10810で失敗しました-ダウンロードしたアプリが起動しません


14

インターネットからダウンロードしたアプリケーション(Jabrefなど)を実行しようとしていますが、静かに失敗するようです。ダブルクリックして開こうとしても、何も起こりません。ターミナルを使用すると、次のメッセージが表示されます。

LSOpenURLsWithRole()は、ファイル... / xxxx.appのエラー-10810で失敗しました

ここで、アクセス許可の変更やInfo.plistファイルの変更など、いくつかの提案を試みましたが、何も機能しません。

それはJavaアプリケーションなので、私はそれを使用して端末から実行しようとしました

java -cp "CLASSPATH" MAINCLASS

そしてそれは正常に動作します。

このエラーはこのアプリだけでなく、他のいくつかのアプリケーションでも発生します。

前もって感謝します。

回答:


8

LSOpenURLsWithRoleは、ファイルをプログラムに関連付けるために使用される関数です。ダブルクリックしているファイルは、実際にはアプリケーションではなく、データファイルです。

たとえば、テキストドキュメントをダブルクリックすると、TextEditプログラムまたは別の関連アプリが起動します。

インストール済みであると仮定して、Javaランタイムに関連付ける必要があります。

ファイルを右クリックして[情報を見る]を選択すると、情報ペインに[開く:]というセクションがあります。これは、Javaランタイムに設定する必要があります。


3

Java以外のプログラムでこの問題が発生している場合、Mach-O実行可能ファイルを含む.appファイルを実行しようとすると、同じエラーメッセージが表示されていました。バンドル内から直接実行可能ファイルを実行しようとすると(たとえばFoo.app/Contents/MacOS/bar)、動的ライブラリの依存関係が欠落していることを示す、はるかに優れたエラーが発生しました。

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

このエラーが表示される場合は、試してみてください。


1

また、デプロイしようとしたJavaプログラムでこのエラーが発生していました。2台目のMac 10.11.6では動作しませんでした。私はどこでも答えを探しましたが、見つけられなかったので、他の人のためにこれをここに置いています。システムコンソールを起動したところ、「open」プログラムがバンドルのコンテンツに「JavaApplicationStub」プログラムを見つけられないというエラーメッセージが見つかりました。問題は、私のバンドルが「JavaAppLauncher」を使用して起動していたことです。古いApple JarBundlerからOracle AppBundlerに変更したため、アプリに署名できるようになりましたが、起動プログラムの名前は異なります。ここで重要なのは、新しいバンドル(バージョン7.1.1)が古いバンドル(バージョン7.1.0)を置き換えており、同じアプリケーション名を持っていることです。古いものはJavaApplicationStubを使用して起動しました。

プログラムのInfo.plistプロパティがキャッシュされ、新しいバンドルを起動するために古い値を使用していたようです。ログアウトまたは再起動時にキャッシュがクリアされるかどうか、またはOS Xの新しいバージョンでこれが修正されるかどうかはわかりませんが、すべてのエンドユーザーに対してこの作業をスムーズに行わなければなりません。

プログラム名にバージョン番号を含めることで問題を回避しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.