2017-05-09 36 views
-6

基本上,我實現一個電臺直播流媒體應用,在這種應用我使用vitamio庫來流實時radio.In我的應用程序有兩個活動:爲什麼我得到這個錯誤「由:java.lang.ArithmeticException異常:除以零」?

(1)MainActivity:這是顯示鍵盤輸入頻率並播放該頻道。

(2)撥號屏幕:這是顯示一個圓輪意味着當用戶滾動該輪時,頻率將改變,並使用開始按鈕播放該頻道。

問題和錯誤:當我開始MainActivity和鍵盤輸入頻率,然後使用啓動按鈕播放頻率的無線電和它工作正常,但當我改變MainActivityDialScreen和滾動DialScreen輪是改變頻率和當我按下開始按鈕,這是在DialScreenCaused by: java.lang.ArithmeticException: divide by zero錯誤。

logcat的:Logcat error

RoundKnobButton.java文件:線29

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"); 
      } 

DialScreen.java文件:線152

rv = new RoundKnobButton(this, R.drawable.circle, R.drawable.circle1, 
      R.drawable.circle1, m_Inst.Scale(350), m_Inst.Scale(350)); 

所以,如果有誰知道問題解決方案o r給我解決這個錯誤的想法然後告訴我。

+0

什麼是線152'DialScreen.java'? – Raghunandan

+4

我非常懷疑你真的需要提供700多行代碼來演示錯誤。該錯誤(應該在問題*中以純文本形式*發佈)表明問題出現在RoundKnob.java的第29行,除以0.(這是* real *代碼的第29行,而不是代碼已經提供,不包括任何進口。)請閱讀https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/ –

+0

所以...很多...代碼.. – QBrute

回答

1

讓我們看看這個行:

int a = Math.round((float)(360/size)); 

,並假定size==361

由於sizeint我們有一個整數除法並且360/size等於0。然後,您將其投射到float,結果爲0.0f,圍繞它(givin 0.0f),並將其分配給int,因此也是0

什麼你可能是指做的是

int a = Math.round(((float)360/size)); 

注意不同的括號...

+0

感謝您的回覆...當我改變這個int時,我會嘗試這個 –

+0

a = Math.round((float)(360/size));到int a = Math.round(((float)360/size));那時也會產生錯誤。如果你知道第二種方式請告訴我。 –

+0

首先要做的是在發生錯誤時找到'size'的實際值。你可以從那裏繼續.... –

相關問題