Деятельность внезапно прекращается без каких-либо исключений - PullRequest
2 голосов
/ 01 марта 2011

У меня есть действие, которое иногда прерывается внезапно, но без каких-либо исключений, которые регистрируются или регистрируются. Активность просто внезапно заканчивается, и приложение возвращается к предыдущей Активности в стеке. Я использую ACRA (http://code.google.com/p/acra/) для захвата и сообщения об ошибках, и он хорошо работает для всех других ошибок в приложении, но в этом одном случае он не обнаруживает никаких исключений. Также ничего не сообщается в Logcat.

Это всегда происходит в одном и том же «месте» в приложении, когда пользователь выполняет определенное действие, но оно очень прерывистое, и мне еще предстоит сделать это, пока он подключен к отладчику. Есть ли другие варианты (помимо ACRA и Logcat) для определения того, что происходит с деятельностью? Или это что-то в мире Android Activity, которое "известно"

Если это имеет значение, это действие выполняет обработку и сохранение растрового изображения; Мне пришлось предпринять шаги, чтобы избежать потенциальных ошибок памяти; но я получал отчеты ACRA об исключениях OOM, когда они имели место, поэтому я не думаю, что это связано с OOME.

В тот момент, когда кажется, что это не удалось, Activity создает AsyncTask и выполняет его. Вот код для AsyncTask (ActivityAsyncTask - действительно простой суперкласс; EditPhotoEctivity - тот, который умирает без исключения, когда-нибудь во время создания или выполнения этой задачи):

* * 1010

См. Также view.getDrawingCache () работает только один раз , что имеет некоторое отношение, но немного отличается от сценария.

Любые идеи приветствуются.

Ответы [ 2 ]

1 голос
/ 10 августа 2012

У меня раньше была похожая проблема.Я пытался открыть файл для чтения, но вместо того, чтобы вводить полный адрес, который был "/sdcard/something.txt", я указал неверный путь (просто "thing.txt ") без части sdcard.После большой боли я обнаружил, что если вы хотите, чтобы программа открывала что-то, чего на самом деле нет, действие просто заканчивается без какого-либо уведомления (для консоли, для logcat и т. Д.).Поскольку он не отправит обратно ошибку, он не перейдет в ветку «catch».

Итак, я бы предложил проверить операции с файлами.

Отказ от ответственности: Я точно знаючто это вызывает такое поведение при попытке открыть неправильный путь с помощью ndk и собственного кода, но я полагаю, что это будет то же самое, если вы сделаете эту ошибку из кода Java.

0 голосов
/ 23 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...