基本上,我实现了一个Live Radio流媒体应用程序,在这个应用程序中,我使用vitamio库来传输直播电台。在我的应用程序中,我有两个活动:
(1)MainActivity:显示键盘输入频率并播放该频道。
(2)DialScreen:显示一个滚轮意味着当用户滚动该滚轮时,此时频率将改变并使用开始按钮播放该频道。
问题和错误:当我启动MainActivity
并在键盘输入频率并使用开始按钮播放该频率无线电时,它正常工作但我正在更改{{1转到MainActivity
并滚动DialScreen
滚轮更改频率,当我按下DialScreen
中的开始按钮并收到DialScreen
错误时。
Logcat: Logcat error
RoundKnobButton.java文件:第29行
Caused by: java.lang.ArithmeticException: divide by zero
DialScreen.java文件:第152行
int size = GetJsonData.frequency.size();
int a = Math.round((float)(360/size));
int b = 0;
try {
Log.i("RoundKnob",".....Try");
b = Math.round((float)(scaleDegrees/a));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i("RoundKnob", ".....catch");
}
所以,如果有人知道问题解决方案或给我解决这个错误的想法,请告诉我。
答案 0 :(得分:2)
让我们来看看这一行:
int a = Math.round((float)(360/size));
并假设size==361
。
由于size
是int
,我们有一个整数除法,360/size
等于0
。然后,您将其转换为float
,生成0.0f
,围绕它(givin 0.0f
)并将其分配给int
,结果也是0
。
你可能打算做的是
int a = Math.round(((float)360/size));
注意不同的括号......