2015-01-16 3 views
1

Работа с Monodevelop была кошмаром в целом. Но среди всех аварий я смог восстановить один из них надежно.Monodevelop падает при вводе буквы «o» вместо целого числа

Похоже, что когда я набираю «o» (буква), когда Monodevelop ожидает, что я наберу целое число, оно всегда будет сбой.

Примеры:

if (spriteRenderers.Length == o  <----*CRASH* 

for (int i=o       <----*CRASH* 

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

И «crash» Я имею в виду, что Monodevelop перестает работать, и я получаю сообщение об ошибке из Windows, спрашивая, хочу ли я принудительно выйти из приложения. После повторного открытия Monodevelop он показывает пустой белый экран (каждый раз).

Единственное исправление, которое я нашел для белого экрана, - удалить файлы «Assembly-CSharp ...» в папке проекта, а затем повторно выполнить проект Monodevelop в Unity3D. Мне иногда приходится повторять это до 10 раз, прежде чем Monodevelop будет работать снова, и примерно в половине случаев я потеряю значительную часть работы в результате.

У кого-нибудь еще было что-то похожее? Любые идеи о том, как предотвратить этот тип сбоев?

PS: Он также сильно падает, когда я печатаю «по умолчанию» в инструкции switch, но не каждый раз, как экземпляр «o» выше.

+0

Возможно, вы отказались от голосования по этому вопросу, потому что он, похоже, не относится к теме переполнения стека с первого раза, поскольку похоже, что вы публикуете сообщение об общем сбое продукта. Тем не менее, похоже, это возможно по теме, поскольку вы просто ищете способ предотвратить общий крах для общего инструмента разработчика. Надеюсь, вы найдете то, что вам нужно! – JoelC

+0

Спасибо, Джоэл. Я видел много вопросов о сбое Monodevelop, но я новичок в Stackoverflow, поэтому я не понимаю, что подходит =/ –

+0

Не со мной. Я могу попробовать компилировать, и я получаю ожидаемую ошибку компилятора. – FunctionR

ответ

0

Если вы печатаете конкретное письмо с ошибкой monodevelop, здесь, конечно, что-то происходит совершенно неправильно. Во-первых, убедитесь, что типизация «o» вызывает моноэволюцию в любой ситуации. Потому что мне трудно поверить, что он сбрасывает только, когда вы вводите o, где 0 ожидается - потому что как monodevelop знает, что «ожидается» в данной ситуации? Поэтому, если это не подтвердится, я предполагаю, что это не то, что происходит на самом деле, а скорее то, что вы пришли в заключение из-за confirmation bias (т. Е. Это случилось два или три раза случайно в ситуации, когда вы намеревались ввести 0, а не о).

Сказанное, проверьте, не назначена ли клавиша быстрого доступа к букве o. Вы можете сбросить сочетания клавиш по умолчанию. В общем, вы можете сбросить все настройки только для обеспечения того, чтобы monodevelop использовал безопасные значения по умолчанию для всего. Также проверьте любой плагин, который вы, возможно, установили, и отключите их, если только для тестирования.

Вы также должны попытаться отключить Unity и запустить только монодом. Затем создайте автономный проект в monodevelop (например, приложение C# windows), чтобы узнать, появляется ли проблема в «режиме разработки обычного приложения».

И наконец, обновите Unity. Если вы уже в 4.6, получите последнюю версию исправления на странице загрузки. Это может также дать вам обновленную версию monodevelop.

Если все это не помогает, вы можете попробовать Xamarin - последнюю версию monodevelop. Вы можете интегрировать это с единством, установив его плагины Unity, но в настоящее время он не позволит вам отлаживать Unity. В любом случае он устанавливает себя бок о бок, поэтому вы должны хотя бы попытаться выяснить, имеет ли подобная проблема.

Если все это не удается, считайте, что проблема может быть в вашей системе. Например, инструмент мог бы установить глобальную комбинацию клавиш на букве o. Сканер вирусов или системный драйвер могут каким-то образом вмешиваться.Или вся система просто чудаковата, может быть, троянец, аппаратный сбой и т. Д. Все это довольно спекулятивно, поэтому на данный момент это вопрос проб и ошибок.

+0

Спасибо за ответ, узнайте! Это определенно не падает каждый раз, когда я набираю «o», но я должен был быть более ясным. Когда я сказал: «Когда он ожидает 0», я имел в виду «... когда он ожидает целое число». Такие, как {INT =} Я также знаком с подтверждением предвзятым, но не волнуйтесь, я испытал это десятки раз, чтобы подтвердить, и это происходит каждый раз, когда Я просто попытался тестирования это с Unity закрыт (по вашему запросу), и он по-прежнему падает. Я использую самую последнюю версию Monodevelop, которая сейчас работает с Я могу опробовать Xamarin или Virtual Studio. Спасибо за совет! –

Смежные вопросы