LSOpenURLsWithRole () non riuscito con errore -10810 - L'app scaricata non si avvia


13

Sto cercando di eseguire un'applicazione scaricata da Internet (ad esempio, Jabref) ma sembra che fallisca silenziosamente. Quando provo ad aprirlo facendo doppio clic su di esso, non succede nulla. Quando uso il terminale ricevo il seguente messaggio:

LSOpenURLsWithRole () non riuscito con errore -10810 per il file ... / xxxx.app

Ho provato diversi suggerimenti che ho trovato qui come cambiare i permessi e modificare il file Info.plist, ma nulla funziona.

Perché è un'applicazione Java, ho provato a eseguirlo tramite il terminale utilizzando

java -cp "CLASSPATH" MAINCLASS

e funziona benissimo.

Solo per dire che ottengo questo errore non solo con questa app, ma per alcune altre applicazioni.

Grazie in anticipo.

Risposte:


7

LSOpenURLsWithRole è una funzione utilizzata per associare un file a un programma. Il file su cui fai doppio clic non è in realtà un'applicazione, ma un file di dati.

Ecco come, ad esempio, quando si fa doppio clic su un documento di testo, viene avviato il programma TextEdit o un'altra app associata.

È necessario associarlo al runtime java, presupponendo che sia installato.

Se fai clic con il pulsante destro del mouse sul file e selezioni Ottieni informazioni, il riquadro delle informazioni ha una sezione chiamata "Apri con:". Questo dovrebbe essere impostato sul runtime java.


2

Per chiunque venga qui che sta riscontrando questo problema per un programma non Java: stavo ricevendo lo stesso messaggio di errore quando provavo a eseguire un file .app che contiene un eseguibile Mach-O. Cercare di eseguire l'eseguibile direttamente dall'interno del pacchetto (ad es. Foo.app/Contents/MacOS/bar) Mi ha dato un errore molto migliore che indica che mancava una dipendenza lib dinamica:

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

Qualcosa da provare se vedi questo errore.


0

Inoltre, ho riscontrato questo errore con un programma Java che stavo tentando di distribuire. Non sono riuscito a farlo funzionare sul mio secondo Mac: 10.11.6. Ho cercato ovunque la risposta, ma non ne ho mai trovata una, quindi la metto qui perché gli altri ne traggano beneficio. Avviando la console di sistema, ho scoperto il messaggio di errore che il programma "open" non è riuscito a trovare il programma "JavaApplicationStub" nel pacchetto Contenuto. Il problema è che il mio bundle utilizzava "JavaAppLauncher" per l'avvio. Sono appena passato dall'uso del vecchio Apple JarBundler a Oracle AppBundler in modo da poter firmare l'app e il nome del programma di avvio è diverso. La chiave qui è che il nuovo bundle (versione 7.1.1) stava sostituendo quello vecchio (versione 7.1.0) e aveva lo stesso nome dell'applicazione. Il vecchio utilizzava JavaApplicationStub per l'avvio.

Sembra che le proprietà di Info.plist per il programma siano state memorizzate nella cache e utilizzava valori non aggiornati per avviare il nuovo pacchetto. Non so se la cache viene cancellata al logout o al riavvio, o se questo viene risolto nelle versioni più recenti di OS X, ma devo avere questo lavoro senza problemi per tutti gli utenti finali.

Ho risolto il problema includendo il numero di versione nel nome del programma.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.