Вы можете получить это исключение просто простой / немой ошибкой, например (случайно), вызвав finish()
после отображения AlertDialog
, если вы пропустите заявление о вызове break в инструкции switch ...
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.new_button:
openMyAlertDialog();
break; <-- If you forget this the finish() method below
will be called while the dialog is showing!
case R.id.exit_button:
finish();
break;
}
}
Метод finish()
закроет Activity
, но AlertDialog
все еще отображается!
Итак, когда вы пристально смотрите на код, ищите плохого проблемы с потоками или сложное кодирование и т. д., не упускайте из виду лес для деревьев. Иногда это может быть просто что-то такое же простое и немое, как недостающий оператор break. :) [/ Д2]
У нас нет компилятора для C++ / CLI, это было бы очень большое обязательство для очень небольшой базы пользователей. Полагайте также, что C++ / СПЕЦИФИКАЦИЯ CLI по сути испорчен и непортативный, таким образом, способность скомпилировать это не помогло бы многому в общем случае.
можно скомпилировать использование компилятора.NET MS и выполнения в моно с этими ограничениями:
выполненный с моно в какой-либо системе, если C++ / приложение CLI чист управляемый (но тогда, почему использование такой ужасный язык и не C#?)
выполненный с моно на окнах в других случаях (C++ / приложения CLI находятся в общем непортативном устройстве и включают собственный код, таким образом, они могут работать только на окнах и являются неинтересными для главной цели моно, которая должна запустить управляемые программы на Linux)
Примечание, что сам MS в конечном счете отбросит C++ / CLI, не вкладывает капитал слишком много на нем и переключается на C#.
Моно в состоянии выполнить 'чистые' блоки, сгенерированные C++ / CLI, т.е., которые не содержат никакой собственный код. Различные опции сброса/, поддерживаемые компилятором C++, документируются на MSDN.
в настоящее время нет никакой поддержки компиляции C++ / CLI. Была некоторая работа над изменением GCC для испускания IL, но это не завершено (и не кажется активным). Посмотрите этот статья .
, я не полагаю, что Microsoft документирует формат для включения собственного кода в блоке, так поддержка, это трудно.
пойдите сюда и посмотрите под "Недостающими Языками". Но просто потому что Вы наклоняетесь, компиляция не означает, что Вы наклоняетесь , работает . Можно скомпилировать код C++ с помощью платформы sdk и попытаться выполнить его с помощью моно. Стоящий попытки так или иначе.
Нет, C++ / CLI не поддерживается под Моно, и вероятное никогда не будет, хотя генерируя чистый IL, который использование компиляторов MS позволило бы полностью управляемому коду выполнять под Моно.
Как interop язык, C++ / CLI существует, чтобы позволить назвать неуправляемый код. Другая альтернатива использует P/Invoke, который является хорошо зарегистрирован хотя с проблемами.
try
? нет попытки - но ответ. Если это - ответ, уточните больше. что Вы добавляющий к существующему ответу?
– dWinder
16 May 2019 в 17:38
On Mono 2.4 you can run C++/CLI applications which were compiled under e.g. Visual Studio 2008 with /clr:safe switch.