LSOpenURLsWithRole () falhou com o erro -10810 - O aplicativo baixado não inicia

14

Estou tentando executar um aplicativo baixado da internet (por exemplo, Jabref), mas parece que ele falha silenciosamente. Quando tento abri-lo clicando duas vezes, nada acontece. Quando uso o terminal, recebo a seguinte mensagem:

LSOpenURLsWithRole () falhou com o erro -10810 para o arquivo ... / xxxx.app

Tentei várias sugestões que encontrei aqui, como alterar permissões e modificar o arquivo Info.plist, mas nada funciona.

Por ser uma aplicação Java, tentei executá-la no terminal usando

java -cp "CLASSPATH" MAINCLASS

e funciona bem.

Apenas para mencionar que eu recebo esse erro não apenas com este aplicativo, mas para alguns outros aplicativos.

Desde já, obrigado.

Estigma
fonte

Respostas:

8

O LSOpenURLsWithRole é uma função usada para associar um arquivo a um programa. O arquivo no qual você clica duas vezes não é realmente um aplicativo, mas um arquivo de dados.

É assim que, por exemplo, ao clicar duas vezes em um documento de texto, o programa TextEdit ou outro aplicativo associado é iniciado.

Você precisa associá-lo ao tempo de execução java, supondo que você o tenha instalado.

Se você clicar com o botão direito do mouse no arquivo e selecionar Obter informações, o painel de informações terá uma seção chamada "Abrir com:". Isso deve ser definido como o tempo de execução java.

O Cavaleiro das Trevas
fonte
3

Para quem vem aqui que está vendo esse problema de um programa não Java: Eu estava recebendo a mesma mensagem de erro ao tentar executar um arquivo .app que contém um executável do Mach-O. Tentar executar o executável diretamente de dentro do pacote configurável (por exemplo Foo.app/Contents/MacOS/bar) me deu um erro muito melhor, indicando que estava faltando uma dependência dinâmica da lib:

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

Algo para tentar se você estiver vendo esse erro.

AndrewJC
fonte
1

Eu também estava encontrando esse erro com um programa Java que estava tentando implantar. Não consegui fazê-lo funcionar no meu segundo Mac: 10.11.6. Procurei em toda parte a resposta, mas nunca encontrei uma, então estou colocando isso aqui para que outros possam se beneficiar. Ao iniciar o System Console, descobri a mensagem de erro de que o programa "aberto" não pôde encontrar o programa "JavaApplicationStub" no conteúdo do pacote configurável. O problema é que meu pacote configurável estava usando "JavaAppLauncher" para iniciar. Acabei de mudar do antigo Apple JarBundler para o Oracle AppBundler para assinar o aplicativo e o nome do programa de inicialização é diferente. A chave aqui é que o novo pacote configurável (versão 7.1.1) estava substituindo o antigo (versão 7.1.0) e tinha o mesmo nome do aplicativo. O antigo usava o JavaApplicationStub para iniciar.

Parece que as propriedades Info.plist do programa foram armazenadas em cache e estavam usando valores obsoletos para iniciar o novo pacote. Não sei se o cache foi limpo no logout ou reinicialização, ou se foi corrigido nas versões mais recentes do OS X, mas preciso que esse trabalho funcione sem problemas para todos os usuários finais.

Eu resolvi o problema incluindo o número da versão no nome do programa.

wjrl
fonte