LSOpenURLsWithRole () falló con el error -10810 - La aplicación descargada no se inicia

14

Estoy tratando de ejecutar una aplicación descargada de Internet (por ejemplo, Jabref) pero parece que falla en silencio. Cuando trato de abrirlo haciendo doble clic en él, no pasa nada. Cuando uso el terminal me sale el siguiente mensaje:

LSOpenURLsWithRole () falló con el error -10810 para el archivo ... / xxxx.app

Intenté varias sugerencias que encontré aquí, como cambiar los permisos y modificar el archivo Info.plist, pero nada funciona.

Debido a que es una aplicación Java, traté de ejecutarla a través de la terminal usando

java -cp "CLASSPATH" CLASE PRINCIPAL

y funciona bien

Solo para mencionar que recibo este error no solo con esta aplicación, sino para algunas otras aplicaciones.

Gracias por adelantado.

Estigma
fuente

Respuestas:

8

LSOpenURLsWithRole es una función que se utiliza para asociar un archivo con un programa. El archivo en el que hace doble clic no es en realidad una aplicación, sino un archivo de datos.

Así es, por ejemplo, cuando se hace doble clic en un documento de texto, se inicia el programa TextEdit u otra aplicación asociada.

Debe asociarlo con el tiempo de ejecución de Java, suponiendo que lo tenga instalado.

Si hace clic derecho en el archivo y selecciona Obtener información, el panel de información tiene una sección llamada "Abrir con:". Eso debería establecerse en el tiempo de ejecución de Java.

El caballero oscuro
fuente
3

Para cualquier persona que venga aquí y vea este problema para un programa que no sea Java: recibí el mismo mensaje de error al intentar ejecutar un archivo .app que contiene un ejecutable Mach-O. Intentar ejecutar el ejecutable directamente desde dentro del paquete (p Foo.app/Contents/MacOS/bar. Ej. ) Me dio un error mucho mejor que indica que me faltaba una dependencia lib dinámica:

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

Algo para probar si está viendo este error.

AndrewJC
fuente
1

También me encontré con este error con un programa Java que estaba tratando de implementar. No pude hacerlo funcionar en mi segunda Mac: 10.11.6. Busqué la respuesta en todas partes, pero nunca encontré una, así que pongo esto aquí para que otros se beneficien. Al iniciar la consola del sistema, descubrí el mensaje de error de que el programa "abierto" no pudo encontrar el programa "JavaApplicationStub" en el contenido del paquete. El problema es que mi paquete estaba usando "JavaAppLauncher" para iniciar. Acababa de cambiar el uso del antiguo Apple JarBundler al Oracle AppBundler para poder firmar la aplicación, y el nombre del programa de inicio es diferente. La clave aquí es que el nuevo paquete (versión 7.1.1) estaba reemplazando al anterior (versión 7.1.0) y tenía el mismo nombre de aplicación. El anterior usaba JavaApplicationStub para iniciar.

Parece que las propiedades de Info.plist para el programa se almacenaron en caché, y estaba usando valores obsoletos para iniciar el nuevo paquete. No sé si el caché se borra al cerrar sesión o reiniciar, o si esto se soluciona en las versiones más recientes de OS X, pero tengo que hacer que esto funcione sin problemas para todos los usuarios finales.

Resolví el problema al incluir el número de versión en el nombre del programa.

wjrl
fuente