Логи падения приложения
Логи падения приложения
Есть ли возможность как-то получить логи падения приложения? Т.е. те логи которые видны в IDE во время работы приложения с "Error" уровнем. Как я понимаю эти логи включая номера строк пишутся всегда (видимо отладочная информация не убирается после сборки приложения).
Допустим человек что-то сделал и в приложении возникла исключительная ситуация, которая его закрыла. Мне нужны последние логи работы приложения с "Error" уровнем, хотябы сохраненные в файле, чтоб его можно было отослать по почте. В лучшем случае автоматически слались либо на сайт, либо на почту.
Допустим человек что-то сделал и в приложении возникла исключительная ситуация, которая его закрыла. Мне нужны последние логи работы приложения с "Error" уровнем, хотябы сохраненные в файле, чтоб его можно было отослать по почте. В лучшем случае автоматически слались либо на сайт, либо на почту.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Логи падения приложения
Можно использовать специальные библиотеки.
Если по мимо логов хочется узнать по больше информации о состоянии телефона во время падения, подойдет ACRA: https://github.com/ACRA/acra
Я пользуюсь Flury. Там не все так подробно, но логи посмотреть можно: http://www.flurry.com/
Если по мимо логов хочется узнать по больше информации о состоянии телефона во время падения, подойдет ACRA: https://github.com/ACRA/acra
Я пользуюсь Flury. Там не все так подробно, но логи посмотреть можно: http://www.flurry.com/
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Логи падения приложения
A crash reporting feature for android apps is native since Android 2.2 (FroYo) but only available through the official Android Market (and with limited data).KamiSempai писал(а):Можно использовать специальные библиотеки.
Если по мимо логов хочется узнать по больше информации о состоянии телефона во время падения, подойдет ACRA: https://github.com/ACRA/acra
Я пользуюсь Flury. Там не все так подробно, но логи посмотреть можно: http://www.flurry.com/
Всмысле в самом маркете в интерфейсе разработчика есть эти логи о падении приложения с причинами и номерами строк? Просто я там не регистнировался еще и не знаю о возможностях.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Логи падения приложения
Да, в интерфейсе разработчика можно посмотреть логи ошибок, но появляются они там после того как пользователь нажмет кнопку отправки отчета об ошибке после вылета приложения. Делают это единицы.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Логи падения приложения
Зарегаюсь попозже. Кстати там для оплаты 25 баксов доллоровая карточка нужна или рублевая там сама конвертируется?KamiSempai писал(а):Да, в интерфейсе разработчика можно посмотреть логи ошибок, но появляются они там после того как пользователь нажмет кнопку отправки отчета об ошибке после вылета приложения. Делают это единицы.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Логи падения приложения
Подойдет любая карточка. Валюта конвертируется автоматически.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Логи падения приложения
Ну в общем небольшой опыт появился. Flurry если честно маловато информации дает. Логи падения не полные, а всего несколько последних строчек, из которых, например, я не смог вычислить источник, до тех пор пока какой-то пользователь не нажал кнопку отправить после падения приложения (с комментарием в стиле "все гАвно") Статистику дает непонятно и удобство их сайта оставляет желать лучшего. Насчет статистики я все же наверно позже попробую Google Analytics для Андроида
Flurry в паре случаев помогал конечно, но есть полный смысл что-то другое пробовать.
Flurry в паре случаев помогал конечно, но есть полный смысл что-то другое пробовать.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Логи падения приложения
С последней версией SDK отчеты об ошибка вполне информативные. Есть отдельная вкладка "Errors", там подробно.
Из всего остального для меня важно видеть приблизительное количество активных пользователей, так как гугл такой статистики не дает, а также статистика по количеству ошибок. Flurry с этим отлично справляется.
Из всего остального для меня важно видеть приблизительное количество активных пользователей, так как гугл такой статистики не дает, а также статистика по количеству ошибок. Flurry с этим отлично справляется.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Логи падения приложения
Можно использовать Acra. Если есть какой-нибудь сайт свой, или место где можно разместить скрипт, то можно настроить Acra примерно так:
Где ERROR_REPORT_URL - скрипт PHP, ERROR_LOGIN - логин в скрипте, ERROR_PASSWORD пароль в скрипте.
Ну а тело самого скрипта такое:
Этот скрипт пошлет отчет об ошибке на указанный мэйл, а в заголовке укажет Отчет об ошибке Vверсия_приложения.
Код: Выделить всё
@ReportsCrashes(formKey = "",
formUri = Constants.ERROR_REPORT_URL, formUriBasicAuthLogin = Constants.ERROR_LOGIN, formUriBasicAuthPassword = Constants.ERROR_PASSWORD, mode = ReportingInteractionMode.TOAST, resToastText = R.string.crash_toast_text)
Ну а тело самого скрипта такое:
Код: Выделить всё
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Текст, отправляемый в том случае,
если пользователь нажал кнопку Cancel';
exit;
} else {
// анализируем переменную PHP_AUTH_DIGEST
if ($_SERVER['PHP_AUTH_USER'] != '_логин_' || $_SERVER['PHP_AUTH_PW'] != '_пароль_')
exit;
$android_version = $_POST['ANDROID_VERSION'];
$build = $_POST['BUILD'];
$brand = $_POST['BRAND'];
$stack_trace = $_POST['STACK_TRACE'];
$avail_mem_size = $_POST['AVAILABLE_MEM_SIZE'];
$app_version_code = $_POST['APP_VERSION_CODE'];
$mymail="app_name@mail-server.ru";
$headers = "From: ".$mymail;
if( $stack_trace != "" && $app_version_code > 16)
{
mail ($mymail, "Отчет об ошибке V".$app_version_code, "$android_version\r\n$build\r\n$brand\r\n$avail_mem_size\r\n$app_version_code\r\n$stack_trace",$headers);
echo "OK";
}
}
?>
Re: Логи падения приложения
А какой размер этого пакета? То флюри сразу приложение в два раза размер увеличил - на 500К. Для небольшой утилитки это не очень хорошоDeadKenny писал(а):Можно использовать Acra. Если есть какой-нибудь сайт свой, или место где можно разместить скрипт, то можно настроить Acra примерно так:Где ERROR_REPORT_URL - скрипт PHP, ERROR_LOGIN - логин в скрипте, ERROR_PASSWORD пароль в скрипте.Код: Выделить всё
@ReportsCrashes(formKey = "", formUri = Constants.ERROR_REPORT_URL, formUriBasicAuthLogin = Constants.ERROR_LOGIN, formUriBasicAuthPassword = Constants.ERROR_PASSWORD, mode = ReportingInteractionMode.TOAST, resToastText = R.string.crash_toast_text)
Ну а тело самого скрипта такое:Код: Выделить всё
<?php if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0 401 Unauthorized'); echo 'Текст, отправляемый в том случае, если пользователь нажал кнопку Cancel'; exit; } else { // анализируем переменную PHP_AUTH_DIGEST if ($_SERVER['PHP_AUTH_USER'] != '_логин_' || $_SERVER['PHP_AUTH_PW'] != '_пароль_') exit; $android_version = $_POST['ANDROID_VERSION']; $build = $_POST['BUILD']; $brand = $_POST['BRAND']; $stack_trace = $_POST['STACK_TRACE']; $avail_mem_size = $_POST['AVAILABLE_MEM_SIZE']; $app_version_code = $_POST['APP_VERSION_CODE']; $mymail="app_name@mail-server.ru"; $headers = "From: ".$mymail; if( $stack_trace != "" && $app_version_code > 16) { mail ($mymail, "Отчет об ошибке V".$app_version_code, "$android_version\r\n$build\r\n$brand\r\n$avail_mem_size\r\n$app_version_code\r\n$stack_trace",$headers); echo "OK"; } } ?>
Этот скрипт пошлет отчет об ошибке на указанный мэйл, а в заголовке укажет Отчет об ошибке Vверсия_приложения.
Re: Логи падения приложения
99 килобайт jar файл весит.alu писал(а): А какой размер этого пакета? То флюри сразу приложение в два раза размер увеличил - на 500К. Для небольшой утилитки это не очень хорошо
https://github.com/ACRA/acra
Re: Логи падения приложения
Помогите найти причину падения приложения.
11-25 12:52:19.678: E/AndroidRuntime(1130): FATAL EXCEPTION: main
11-25 12:52:19.678: E/AndroidRuntime(1130): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.therapy/com.example.therapy.Otravl}: java.lang.NullPointerException
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
11-25 12:52:19.678: E/AndroidRuntime(1130): FATAL EXCEPTION: main
11-25 12:52:19.678: E/AndroidRuntime(1130): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.therapy/com.example.therapy.Otravl}: java.lang.NullPointerException
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
Re: Логи падения приложения
У тебя что-то возвращает NULL. Может переменную объявил, а значение ей не присвоил.Nik писал(а):Помогите найти причину падения приложения.
11-25 12:52:19.678: E/AndroidRuntime(1130): FATAL EXCEPTION: main
11-25 12:52:19.678: E/AndroidRuntime(1130): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.therapy/com.example.therapy.Otravl}: java.lang.NullPointerException
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
Можешь погуглить ошибку: java.lang.NullPointerException
(двойной щелчок по этой строке в логе - должен перекинуть в код, на строку с ошибкой)
Когда выкладываете код на форум - код оформляйте. Редактор - поищите слова Geshi Syntax -Java. (или xml)
Свои сообщения можно редактировать - кнопка edit.
Свои сообщения можно редактировать - кнопка edit.
Re: Логи падения приложения
нашел ошибку. (кривые руки + глюки// 2 одинаковых кнопки работали в одной форме)trew писал(а):У тебя что-то возвращает NULL. Может переменную объявил, а значение ей не присвоил.Nik писал(а):Помогите найти причину падения приложения.
11-25 12:52:19.678: E/AndroidRuntime(1130): FATAL EXCEPTION: main
11-25 12:52:19.678: E/AndroidRuntime(1130): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.therapy/com.example.therapy.Otravl}: java.lang.NullPointerException
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-25 12:52:19.678: E/AndroidRuntime(1130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
Можешь погуглить ошибку: java.lang.NullPointerException
(двойной щелчок по этой строке в логе - должен перекинуть в код, на строку с ошибкой)
Re: Логи падения приложения
Лог падения приложения указывает на getResult
11-30 06:51:22.671: E/AndroidRuntime(1005): at cd.discriminant.MainActivity.getResult(MainActivity.java:81)
не могу понять в чем баг.
11-30 06:51:22.671: E/AndroidRuntime(1005): at cd.discriminant.MainActivity.getResult(MainActivity.java:81)
не могу понять в чем баг.
Код: Выделить всё
private void getResult(String mA, String mB, String mC) {
// TODO Auto-generated method stub
//Объявление переменных
int mValueA; int mValueB; int mValueC;
//Проверяем были ли введенны данные вообще
if (a.length() == 0) { \\точнее вот это место ругается. что его здесь не устраивает?
a = "1";
mValueA = 1;
}
else {
mValueA = Integer.parseInt(a);
}
//Достаем из строки число типа int
if (b.length() == 0) {
b = "0";
mValueB = 0;
} else {
mValueB = Integer.parseInt(b);
}
if (c.length() == 0) {
c = "0"; mValueC = 0;
} else {
mValueC = Integer.parseInt(c);
}
//Передаем числовые данные функции расчета уравнения
Discrim(mValueA, mValueB, mValueC);
/*Собираем строку для вывода данных * Подготовка основного уравнения * a не должно равняться 0 */
if (mValueA == 0)
mResult = 1 + "x2";
else
mResult = a + "x2";
if (mValueB < 0 )
mResult += b + "x";
else
mResult += "+" + b + "x";
if (mValueC < 0)
mResult += c + " = 0";
else
mResult += "+" + c + "= 0";
//Вывод уравнения расчета x1 и x2
mResult += "x1,x2 = (-(" + b + ")±√" + b + "2-4×" + a + "×" + c + ")/2×" + a + " = 0";
/*В зависимости от значения дискриминанта добавляем данные. * D < 0 - строка c сообщением * D > 0 - результаты расчета x1 и x2 */
if (D < 0) {
mResult += "Уравнение не имеет решения, так как дискриминант меньше 0";
} else {
mResult += "x1 = -(" + b + ") + √" + D + " = " + x1 + "";
mResult += "x2 = -(" + b + ") - √" + D + " = " + x2 + "";
}
}
Re: Логи падения приложения
А в чем баг написано в логе строчкой выше!!
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Логи падения приложения
11-30 06:51:22.671: E/AndroidRuntime(1005): java.lang.NullPointerExceptionFoenix писал(а):А в чем баг написано в логе строчкой выше!!
нуль? а что нуль? откуда он пришел?
Re: Логи падения приложения
щелкай туда два раза. В той строчке будет ошибка, значит какая-то переменная не проинициализирована. Т.е. ищи ее инициализацию выше - или ее вообще нет, или оператор не сработал - что-то не найдено и так далее.
NPE в 99% случаев легкая ошибка, ее можно найти самому.
NPE в 99% случаев легкая ошибка, ее можно найти самому.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198