Я получил свой первый отчет о сбоях для своего приложения. Он говорит, что есть java.lang.ArithmeticException: divide by zero
Как определить, какое значение равно 0?
Исключение одного из этих двух линий:
//sWP stands for "Screen Width in Pixels"
// sW stands for "Screen Width" The code is old though, so I may be incorrect for both variables.
//res is just getResources()
int sWP = sW/(res.getDisplayMetrics().densityDpi/DisplayMetrics.DENSITY_DEFAULT);
float bHeight = 50 * ((float)res.getDisplayMetrics().densityDpi/DisplayMetrics.DENSITY_DEFAULT);
Может DisplayMetrics.DENSITY_DEFAULT
когда-либо быть нулевым? Или может getDisplayMetrics().densityDpi
когда-либо быть нулевым?
Должен ли я также изменить sWP на двойной? Также в этом случае res.getDisplayMetrics(). ПлотностьDpi равна 320 – Roymunson
@Roymunson Изменение sWP для двойного значения для меня не имеет смысла, как вы говорите _ // sWP означает «Ширина экрана в пикселях» _. Извините, я забыл бросить на int. Я отредактирую свой ответ. –
@ Roymunson Что касается значения 320, которое вы получаете за плотность Dpi, кто-то забыл изменить документацию для плотности Dpi из API 4 при введении DENSITY_XHIGH в API 9. –