Force Close всегда происходит на устройстве Android (даже с очень простым кодом hello world) - PullRequest
2 голосов
/ 20 ноября 2011

Недавно в моем университете работал монодроид в лабораториях, и я потратил целый день, пытаясь разобраться с ним.

Тем не менее, после создания базовых обучающих сценариев для реального телефона (желания hd и невероятные 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. Но не на реальном устройстве.

Я не могу получить отладочную информацию с устройства (я следовал инструкциям, чтобы разрешить отладку по Wi-Fi). С точкой останова, включенной в строку 3 выше (base.onCreate(bundle);), он, похоже, даже не вступает в этот метод и просто останавливает отладку после принудительного закрытия.

Я попытаюсь снова отладить это с устройства и сейчас получу более подробную информацию. Возможно, я что-то не так понял.

Я только что попробовал несколько примеров проектов из xamarin gitHub, от простых макетов до полных примеров 3d oGL, и все они возвращают сообщения принудительного закрытия при запуске на моем устройстве. Я посмотрю на некоторые настройки компилятора и сделаю перезагрузку этой системы

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

Ответы [ 3 ]

3 голосов
/ 20 ноября 2011

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

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

1 голос
/ 21 ноября 2011

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

0 голосов
/ 24 сентября 2013

ОП говорит, что они решили проблему:

MonoDroid не был правильно установлен в лабораториях, даже если вся информация, указывающая на регистрацию / аутентификацию, указана иначе.

...