Ошибка SIGABRT при запуске приложения MonoTouch - PullRequest
4 голосов
/ 08 апреля 2010

Я новичок в MonoTouch, и чаще всего, когда я пытаюсь запустить приложение MonoTouch на симуляторе iPhone (режим отладки и обычный режим), я получаю длинный вывод ошибки, который начинается со следующего сообщения:

Ошибка подключения stdout и stderr (127.0.0.1:10001) Не удалось зарегистрировать com.yourcompany. [Appnamehere] на сервере начальной загрузки. Ошибка: неизвестный код ошибки. Обычно это означает, что другой экземпляр этого процесса уже запущен или завис в отладчике. Stacktrace:

at (управляемая оболочкой) MonoTouch.UIKit.UIApplication.UIApplicationMain (int, string [], intptr, intptr) <0x00004> at (управляемая оболочкой) MonoTouch.UIKit.UIApplication.UIApplicationMain (int, string [], intptr, intptr) <0x00004> в MonoTouch.UIKit.UIApplication.Main (строка [], строка, строка) <0x00089> в MonoTouch.UIKit.UIApplication.Main (строка []) <0x00014> в PodcastManager.Application.Main (string []) <0x00010> at (вызов оболочки во время выполнения) .runtime_invoke_void_object (object, intptr, intptr, intptr) <0x00043>

И заканчивается на:

=============================================== ==================

Получил SIGABRT при выполнении собственного кода. Обычно это указывает на фатальную ошибку в моно среде выполнения или в одной из собственных библиотек, используемых вашим приложением.

=============================================== ==================

Странная вещь, это будет работать иногда. Однажды перезагрузка моей машины сделала это. Другие, просто перезапустите MonoDevelop и / или симулятор.

Я могу предоставить полный вывод ошибок, если вы считаете, что это может помочь.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010

Это проблема с отладчиком monotouch. Иногда, когда происходит сбой приложения, отладчик зависает в памяти, что не позволяет вам снова запустить приложение. Как вы сказали, иногда закрытия MonoDevelop и симулятора достаточно для очистки отладчика, иногда требуется полная перезагрузка. Это также мой опыт, который, пожалуй, единственная плохая вещь, которую я до сих пор нашел с monotouch.

Много раз я могу напрямую убить процесс из консоли. Для этого откройте консоль и введите «top». Вы увидите список процессов, использующих наибольшее количество памяти, ваше приложение, вероятно, будет на вершине, используя почти 100% процессорного времени. Сохраните идентификатор этой строки и введите q, чтобы выйти. Теперь типа "убить -9 ???" где ??? это идентификатор, который вы получили сверху.

Monotouch 2.0 исправил многие из этих проблем, если вы еще не обновились, я бы настоятельно рекомендовал вам сделать это. Я использую бета-версию 2.0, и она намного стабильнее. Аварии снизились с 1 или 2 каждый час до 1 или 2 в день. Это все еще происходит, к сожалению.

1 голос
/ 09 апреля 2010

- Обновление - после обновления до 2.0.2 я не видел этой проблемы.

После того, как вы поиграли с ним достаточно долго и наткнулись на этот отчет об ошибке, я пришел к выводу, что до исправления способ предотвратить эту ошибку НИКОГДА не останавливать сеанс отладки в IDE. Пока вы останавливаете сеанс отладки, когда код не находится в точке останова нажатием кнопки home, кажется, что вы избежите этой ситуации.

0 голосов
/ 11 марта 2015

Я думаю, что эта ошибка возникает, когда отсутствует какая-либо нативная библиотека monotouch. Это происходит из-за удаления Visual Studio или обновления Xamarin. Я столкнулся с той же ошибкой и решил ее с помощью Unistalland, переустановив Xamarin Visual Studio и Xamarin Studio. Это занимает 10 минут, и все проблемы решены.

...