Принудително затваряне винаги се случва на устройство с Android (дори с много прост код за здравей, свят)

Моят университет наскоро получи монодроид, работещ в лабораториите, и прекарах деня, опитвайки се да се справя с него.

Въпреки това, при изграждането на основните скриптове за обучение към действителен телефон (desire hd и incredible s), те незабавно ще изведат съобщение за принудително затваряне.

[РЕДАКТИРАНЕ] Добре. Това е (според мен) изключително проста процедура, базирана на първоначалния monoDevelopProject.

Пропуснах да използвам секциите за пространство от имена за яснота, всички те са оставени по подразбиране.

protected override void OnCreate(Bundle bundle)
{
    base.OnCreate(bundle);

    // Set our view from the "main" layout resource
    SetContentView(Resource.Layout.Main);

    // Get our button from the layout resource,
    // and attach an event to it
    Button button = FindViewById<Button>(Resource.Id.MyButton);
    // on button click change button text
    button.Click += delegate { button.Text = string.Format("You clicked the button!") };
}

И така, това се компилира, изгражда и работи без грешки на стандартно ему sdk 2.3. Но не и на реално устройство.

Не мога да извлека никаква информация за отстраняване на грешки от устройството (следвах инструкциите, за да разреша отстраняване на грешки по wifi). С точка на прекъсване, включена в ред 3 по-горе (base.onCreate(bundle);), изглежда, че дори не влиза в този метод и просто спира отстраняването на грешки след принудително затваряне.

Ще се опитам да отстраня грешки отново от устройството и ще получа още подробности сега. Може да съм объркал нещо.

Току-що изпробвах няколко примерни проекта от xamarin gitHub, вариращи от прости оформления до пълни 3d oGL примери и всички връщат съобщения за принудително затваряне при изпълнение на моето устройство. Ще разгледам някои от настройките на компилатора и ще рестартирам тази система

Когато стартирам отстраняването на грешки (зелена стрелка), то дори не активира бутоните за пауза/стоп (както би трябвало и прави на emu). Наистина нямам представа какво не е наред, сякаш приложението се убива веднага щом бъде изпратено до устройството. Имам чувството, че не е инсталиран правилно на тези системи, тъй като сега опитах два компютъра в лабораторията.


person McSteve    schedule 20.11.2011    source източник
comment
Можете ли да публикувате изходни журнали за отстраняване на грешки за срива?   -  person Cameron Hotchkies    schedule 20.11.2011
comment
Трудно е да се отстранят грешки в нещо, което не можете да видите :) Предлагам да редактирате това, за да включите възможно най-прост възпроизвеждащ инструмент компилация и толкова подробни съобщения за грешки, колкото можете да получите. (Обръщайки специално внимание на предупрежденията на компилатора.)   -  person sarnold    schedule 20.11.2011
comment
Бихте ли опитали да премахнете вашите точки на прекъсване? Този диалогов прозорец за принудително затваряне се показва, когато Android открие, че приложението не отговаря - какъвто е случаят, когато дебъгерът чака точка на прекъсване. Може би MonoDevelop не показва точката на прекъсване (или грешния файл), така че можете да опитате без точки на прекъсване или да използвате Run, за да продължите изпълнението и да видите дали това решава проблема.   -  person poupou    schedule 20.11.2011
comment
Виждам, но проблемът остава без точки на прекъсване, физически мога да видя заглавието на приложението, показано за секунда преди принудителното затваряне, така че изглежда, че се настройва и започва да работи, но се срива, когато или точно преди да се влезе в класа Activity1.   -  person McSteve    schedule 20.11.2011
comment
Съжалявам, че не бях ясен. Това не са самоточки за прекъсване, това е общо прекъсване - т.е. когато дебъгерът спре (прекъсне) изпълнението, Android ще подозира, че приложението е замразено и може да ви покаже този диалог за принудително затваряне. Ако можете да стъпите/възобновите (изпълните) от MonoDevelop, то трябва (от паметта) да бъде отхвърлено автоматично (т.е. не е нужно да отговаряте на диалоговия прозорец).   -  person poupou    schedule 20.11.2011
comment
А, разбирам. Има ли някаква причина защо, когато стартирам отстраняването на грешки, не извежда бутоните [възпроизвеждане, спиране, пауза]? Страхувам се, че правя напълно погрешно нещо, когато натисна f5?   -  person McSteve    schedule 20.11.2011


Отговори (3)


В допълнение към отговора на jpobst бих ви препоръчал да получите програма за преглед на журнали за вашето устройство и да го гледате, докато приложението ви работи. Нямам връзка с тези момчета, но открих, че използвам приложението им отново и отново. https://market.android.com/details?id=com.nolanlawson.logcat&hl=bg

person Terrance    schedule 20.11.2011
comment
благодаря, изглежда, че съм бил прав като си помислих, че не е инсталиран правилно. с помощта на catLog открих грешката ГРЕШКА: Тази версия на MonoDroid ще работи само в емулатора на Android. Ще говоря с техническата поддръжка и ще ги накарам да проверят инсталацията. - person McSteve; 21.11.2011
comment
Когато се съмнявате catlog изглежда помага. Np. - person Terrance; 21.11.2011

Опитайте да го стартирате без отстраняване на грешки (Ctrl-F5), оставете го да се срине и след това проверете регистъра за отстраняване на грешки за изключението, причиняващо срива:

http://docs.xamarin.com/android/advanced_topics/android_debug_log

person jpobst    schedule 20.11.2011

OP казва, че са решили проблема:

MonoDroid не е инсталиран правилно в лабораториите, въпреки че цялата информация, сочеща към регистрация/удостоверяване, посочва друго.

person Community    schedule 24.09.2013