Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678

В чем причина сбоя?

20.04.2017, 08:55. Показов 699. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть apk, обработанный через proguard.
При сбое посылает мне от пользователей логи сбоев.
Часто встречается такое:
java.lang.NumberFormatException: Infinity or NaN: NaN at java.math.BigDecimal.(BigDecimal.java:46 5) at
ua.slon.at.ev.a(Unknown Source) at ua.slon.at.bc.a(Unknown Source) at ua.slon.at.x.afterTextChanged(Unknown Source) at
android.widget.TextView.sendAfterTextCha nged(TextView.java:9289) at android.widget.TextView.setText(TextView .java:5009) at
android.widget.TextView.setText(TextView .java:4827) at android.widget.EditText.setText(EditText .java:116) at
android.widget.TextView.setText(TextView .java:4802) at ua.slon.at.bc.a(Unknown Source) at ua.slon.at.w.onItemSelected(Unknown
Source) at android.widget.AdapterView.fireOnSelecte d(AdapterView.java:1166) at
android.widget.AdapterView.dispatchOnIte mSelected(AdapterView.java:1155) at
android.widget.AdapterView.access$300(Ad apterView.java:60) at
android.widget.AdapterView$SelectionNoti fier.run(AdapterView.java:1122) at android.os.Handler.handleCallback(Handle r.java:739) at
android.os.Handler.dispatchMessage(Handl er.java:95) at android.os.Looper.loop(Looper.java:158) at
android.app.ActivityThread.main(Activity Thread.java:7231) at java.lang.reflect.Method.invoke(Native Method) at
com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:1230) at
com.android.internal.os.ZygoteInit.main( ZygoteInit.java:1120)


Нашел точку, указывающую на ua.slon.at.x.afterTextChanged:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TextWatcher inputTW = new TextWatcher() {
 
            public void afterTextChanged(Editable s) {
 
                if (LookingForViews) {
                    document_line.setValuesFromViews(dialogProduct);
                }
                ((TextView) dialogProduct.findViewById(R.id.txtPopProductSum))
                        .setText(context.getString(R.string.Sum) + ": " + Utils.getCurrencyFormat(document_line.getSum()));
            }
 
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                //To change body of implemented methods use File | Settings | File Templates.
            }
 
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                //To change body of implemented methods use File | Settings | File Templates.
            }
        };
Далее нашел код из ua.slon.at.bc.a
Java
1
2
3
4
5
public double getSum() {
 
        double sum_discount = count * price * discount / 100;
        return Utils.getRoundDouble((count * price) - sum_discount, 2);
    }

Но где тут может быть причина сбоя?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2017, 08:55
Ответы с готовыми решениями:

Сбои и ANR. 90% - Galaxy. В чем причина?
Есть 3 ошибки: java.lang.StackOverflowError: PMP7170B3G_DUO 2 9,5 % Galaxy Y Duos (GT-S6102) 2 9,5 % LG Optimus L3 (e0) 1 4,8 % ...

В чём причина причина в бд или в коде?
Вывожу данные в datagridview,видны только цифры во всех таблицах.Может кто сталкивался? Испытал версии Access 2003 mdb формата и 2007...

В чем причина
Подскажите пожалуйста.при подключении одного и тогоже блока питания на одной материнке 12.6в.а второй 11.7в.Первая сборка феном 955,радеон...

12
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
20.04.2017, 09:56
может быть слишком большое число, что в getRoundDouble?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
20.04.2017, 10:18  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
может быть слишком большое число, что в getRoundDouble?
Java
1
2
3
4
5
6
7
   // --------------------------------------------------------------------
    // Округляет double до указанного кол-ва чисел после запятой
    // --------------------------------------------------------------------
    public static double getRoundDouble(double sourse, int decimal) {
 
        return new BigDecimal(sourse).setScale(decimal, RoundingMode.HALF_UP).doubleValue();
    }
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
20.04.2017, 10:26
какие значения приходят в переменных?
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
20.04.2017, 10:47  [ТС]
Цитата Сообщение от shavuz Посмотреть сообщение
какие значения приходят в переменных?
с типом double.
Больше сказать не могу, т.к. у меня данная ошибка не возникает
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
20.04.2017, 10:55
ну а test повесить на метод, да проверить разные значения не?
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
20.04.2017, 10:56
ну во первых посмотрите на каких девайсах это происходит и попробуйте запустить на таком же на эмуляторе
во вторых поставьте дебаг на строку ретерн и посмотрите какое значение приходит. может быть ваш девайс может иначе распределять память для простых переменных чем другие
0
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
20.04.2017, 11:03  [ТС]
Цитата Сообщение от ExFau$t Посмотреть сообщение
ну а test повесить на метод, да проверить разные значения не?
Пользователи далеко и я их почти не знаю.
Данная ошибка возникает не всегда.
Так что, затруднительно.

Добавлено через 2 минуты
Цитата Сообщение от shavuz Посмотреть сообщение
ну во первых посмотрите на каких девайсах это происходит и попробуйте запустить на таком же на эмуляторе
во вторых поставьте дебаг на строку ретерн и посмотрите какое значение приходит. может быть ваш девайс может иначе распределять память для простых переменных чем другие
Спасибо. Буду думать.
0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
20.04.2017, 11:03
Не понял, причём тут пользователи? Вешаешь юниттест, смотришь в консоли на каких мобилках падает, ставишь эмулятор , как уже говорилось, и пошёл - вбрасываешь краевые значения и смотришь, как ведёт себя метод.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
20.04.2017, 11:06
очевидно ведь что надо смотреть как вычисляются все эти count price discount

Не по теме:

ps: код ужасен и половина переменных именованы не по конвенции

0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
20.04.2017, 11:11
Цитата Сообщение от Slon747 Посмотреть сообщение
Пользователи далеко и я их почти не знаю.
если бы мы знали всех пользователей наших приложений, дело было бы плохо)))

Добавлено через 1 минуту
О! документация говорит вот такую штуку:
Note: For values other than float and double NaN and ±Infinity, this constructor is compatible with the values returned by Float.toString(float) and Double.toString(double). This is generally the preferred way to convert a float or double into a BigDecimal, as it doesn't suffer from the unpredictability of the BigDecimal(double) constructor.

Parameters:
val - String representation of BigDecimal.
Throws:
NumberFormatException - if val is not a valid representation of a BigDecimal.

Добавлено через 3 минуты
Вот тут все расписано http://docs.oracle.com/javase/... cimal.html
1
67 / 43 / 5
Регистрация: 24.08.2013
Сообщений: 678
20.04.2017, 11:40  [ТС]
shavuz, спасибо!
Не знаю как тут может возникать "NumberFormatException - if val is not a valid representation of a BigDecimal"
Но теперь можно исправить.
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
20.04.2017, 11:43
Цитата Сообщение от Slon747 Посмотреть сообщение
Но теперь можно исправить.
это по большому счету заплатка, может стоит отказаться от бигдецимал? он косячный.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2017, 11:43
Помогаю со студенческими работами здесь

В чем причина
Вообщем по идеи в следующим коде по матрице ну хотя-бы вообще должна бегать буква J. Но почему-то она стоит на месте. Не могу понять в...

в чем причина?
несколько раз переустонавливаю ПХП и Апач а коды все равно кривые, кто знает, в чем прчина? картинка приложена...

В чем причина
Почему-то на мой сайт okonremont.com в январе нет переходов с яндекса? Хотя станицы в индексе и в декабре переходы были

В чем причина?
При авторизации пользователя который был зарегистрирован самым первым в БД, все проходит успешно, но при авторизации всех остальных выдает...

В чем причина?
Недавно добавил 2 новых канала (остальные без канала были) показы и клики есть, деньги есть, но эти деньги не учитываются в "Доход за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru