FATAL EXCEPTION: main ; Error receiving broadcast Intent

匿名 (未验证) 提交于 2019-12-03 00:46:02

问题:

My code seems fine but suddenly after cleaning up my code i started reviving a run time error please help :

Error Log :

    05-04 02:13:13.556: E/MediaPlayer(16609): start called in state 4 05-04 02:13:13.556: E/MediaPlayer(16609): error (-38, 0) 05-04 02:13:13.556: E/MediaPlayer(16609): Error (-38,0) 05-04 02:13:13.558: D/AndroidRuntime(16609): Shutting down VM 05-04 02:13:13.558: W/dalvikvm(16609): threadid=1: thread exiting with uncaught exception (group=0x41c88d40) 05-04 02:13:13.564: E/AndroidRuntime(16609): FATAL EXCEPTION: main 05-04 02:13:13.564: E/AndroidRuntime(16609): Process: com.ayush.mymusicplayer, PID: 16609 05-04 02:13:13.564: E/AndroidRuntime(16609): java.lang.RuntimeException: Error receiving broadcast Intent { act=com.ayush.mymusicplayer.seekprogress flg=0x10 (has extras) } in com.ayush.mymusicplayer.MyMainActivity$1@42553a80 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:778) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.os.Handler.handleCallback(Handler.java:733) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.os.Handler.dispatchMessage(Handler.java:95) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.os.Looper.loop(Looper.java:136) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.app.ActivityThread.main(ActivityThread.java:5102) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at java.lang.reflect.Method.invokeNative(Native Method) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at java.lang.reflect.Method.invoke(Method.java:515) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at dalvik.system.NativeStart.main(Native Method) 05-04 02:13:13.564: E/AndroidRuntime(16609): Caused by: java.lang.NumberFormatException: Invalid int: "null" 05-04 02:13:13.564: E/AndroidRuntime(16609):    at java.lang.Integer.invalidInt(Integer.java:137) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at java.lang.Integer.parseInt(Integer.java:354) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at java.lang.Integer.parseInt(Integer.java:331) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at com.ayush.mymusicplayer.MyMainActivity.updateUI(MyMainActivity.java:356) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at com.ayush.mymusicplayer.MyMainActivity.access$0(MyMainActivity.java:352) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at com.ayush.mymusicplayer.MyMainActivity$1.onReceive(MyMainActivity.java:348) 05-04 02:13:13.564: E/AndroidRuntime(16609):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768) 05-04 02:13:13.564: E/AndroidRuntime(16609):    ... 9 more 05-04 02:13:18.279: I/Process(16609): Sending signal. PID: 16609 SIG: 9 

MyMainActivity : (Error seems to be pointing the reviver - "broadcastReceiver" in this class which receive the info for seekbar ! the error occurs when i start playSong() )

public class MyMainActivity extends Activity implements OnSeekBarChangeListener {      private ImageButton btnPlay;     private ImageButton btnForward;     private ImageButton btnBackward;     private ImageButton btnNext;     private ImageButton btnPrevious;     private ImageButton btnPlaylist;     private ImageButton btnRepeat;     private ImageButton btnShuffle;     private TextView songTitleLabel;     private TextView songCurrentDurationLabel;     private TextView songTotalDurationLabel;      private SeekBar songProgressBar;     private int seekMax;     private int seekProgress;     private static int songEnded = 0;     boolean mBroadcastIsRegistered;     private int seekPos;      private SongsManager songManager;     private Utilities utils;     private int seekForwardTime = 5000; // 5000 milliseconds     private int seekBackwardTime = 5000; // 5000 milliseconds     private int currentSongIndex = 0;     private boolean isShuffle = false;     private boolean isRepeat = false;     private boolean startedPlaying = false;     private boolean paused = false;      private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();     Intent serviceIntent;      // Broadcasting     Intent broadcastStateIntent;     public static final String BROADCASTING = "com.ayush.mymusicplayer.broadcasting";      // --Set up constant ID for broadcast of seekbar position--     public static final String BROADCAST_SEEKBAR = "com.ayush.mymusicplayer.sendseekbar";     Intent intent;      @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.player);          try {             // All player buttons             btnPlay = (ImageButton) findViewById(R.id.btnPlay);             btnForward = (ImageButton) findViewById(R.id.btnForward);             btnBackward = (ImageButton) findViewById(R.id.btnBackward);             btnNext = (ImageButton) findViewById(R.id.btnNext);             btnPrevious = (ImageButton) findViewById(R.id.btnPrevious);             btnPlaylist = (ImageButton) findViewById(R.id.btnPlaylist);             btnRepeat = (ImageButton) findViewById(R.id.btnRepeat);             btnShuffle = (ImageButton) findViewById(R.id.btnShuffle);             songProgressBar = (SeekBar) findViewById(R.id.songProgressBar);             songTitleLabel = (TextView) findViewById(R.id.songTitle);             songCurrentDurationLabel = (TextView) findViewById(R.id.songCurrentDurationLabel);             songTotalDurationLabel = (TextView) findViewById(R.id.songTotalDurationLabel);              songManager = new SongsManager();             utils = new Utilities();              // --- set up seekbar intent for broadcasting new position to             // service ---             intent = new Intent(BROADCAST_SEEKBAR);              broadcastStateIntent = new Intent(BROADCASTING);              serviceIntent = new Intent(this, myPlayService.class);              // Getting all songs list             songsList = songManager.getPlayList();              // set the starting title song             songTitleLabel.setText(songsList.get(0).get("songTitle"));               // Listeners             songProgressBar.setOnSeekBarChangeListener(this);              /**              * Play button click event              * plays a song and changes button to pause image              * pauses a song and changes button to play image              * */             btnPlay.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View arg0) {                     // check for already playing                      if (startedPlaying == false && paused == false) {                         // Changing button image to pause button                         btnPlay.setImageResource(R.drawable.btn_pause);                         playSong(currentSongIndex);                         startedPlaying = true;                         paused = false;                     } else if (startedPlaying == false && paused == true) {                         // Changing button image to play button                         btnPlay.setImageResource(R.drawable.btn_pause);                         resumingBroadcast();                         paused = false;                         startedPlaying = true;                     }                      else if (startedPlaying == true && paused == false) {                         // Changing button image to play button                         btnPlay.setImageResource(R.drawable.btn_play);                         pausingBroadcast();                         paused = true;                         startedPlaying = false;                     }                 }              });              /**              * Forward button click event Forwards song specified seconds              * */             btnForward.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View arg0) {                     // check if seekForward time is lesser than song duration                     if (seekProgress + seekForwardTime <= seekMax) {                         // forward song                         seekPos = seekProgress + seekForwardTime;                         intent.putExtra("seekpos", seekPos);                         sendBroadcast(intent);                     } else {                         // forward to end position                         seekPos = seekMax;                         intent.putExtra("seekpos", seekPos);                         sendBroadcast(intent);                     }                 }             });              /**              * Backward button click event Backward song to specified seconds              * */             btnBackward.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View arg0) {                     // check if seekBackward time is greater than 0 sec                     if (seekProgress - seekBackwardTime >= 0) {                         // forward song                         seekPos = seekProgress + seekBackwardTime;                         intent.putExtra("seekpos", seekPos);                         sendBroadcast(intent);                     } else {                         // backward to starting position                         intent.putExtra("seekpos", 0);                         sendBroadcast(intent);                     }                 }             });              /**              * Button Click event for Play list click event Launches list              * activity which displays list of songs              * */             btnPlaylist.setOnClickListener(new View.OnClickListener() {                  @Override                 public void onClick(View arg0) {                     Intent i = new Intent(getApplicationContext(),                             PlayListActivity.class);                     startActivityForResult(i, 100);                 }             });              /**              * Next button click event Plays next song by taking              * currentSongIndex + 1              * */             btnNext.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View arg0) {                     if (isShuffle) {                         // shuffle is on - play a random song                         Random rand = new Random();                         currentSongIndex = rand.nextInt((songsList.size() - 1) - 0 + 1) + 0;                         playSong(currentSongIndex);                     } else {                         // check if next song is there or not                         if (currentSongIndex < (songsList.size() - 1)) {                             playSong(currentSongIndex + 1);                             currentSongIndex = currentSongIndex + 1;                         } else {                             // play first song                             playSong(0);                             currentSongIndex = 0;                         }                     }                 }             });              /**              * Back button click event Plays previous song by currentSongIndex -              * 1              * */             btnPrevious.setOnClickListener(new View.OnClickListener() {                 @Override                 public void onClick(View arg0) {                     if (isShuffle) {                         // shuffle is on - play a random song                         Random rand = new Random();                         currentSongIndex = rand.nextInt((songsList.size() - 1) - 0 + 1) + 0;                         playSong(currentSongIndex);                     } else {                         if (currentSongIndex > 0) {                             playSong(currentSongIndex - 1);                             currentSongIndex = currentSongIndex - 1;                         } else {                             // play last song                             playSong(songsList.size() - 1);                             currentSongIndex = songsList.size() - 1;                         }                     }                 }             });              /**              * Button Click event for Repeat button Enables repeat flag to true              * */             btnRepeat.setOnClickListener(new View.OnClickListener() {                  @Override                 public void onClick(View arg0) {                     if (isRepeat) {                         isRepeat = false;                         Toast.makeText(getApplicationContext(),                                 "Repeat is OFF", Toast.LENGTH_SHORT).show();                         btnRepeat.setImageResource(R.drawable.btn_repeat);                     } else {                         // make repeat to true                         isRepeat = true;                         Toast.makeText(getApplicationContext(), "Repeat is ON",                                 Toast.LENGTH_SHORT).show();                         // make shuffle to false                         isShuffle = false;                         btnRepeat                                 .setImageResource(R.drawable.btn_repeat_focused);                         btnShuffle.setImageResource(R.drawable.btn_shuffle);                     }                 }             });              /**              * Button Click event for Shuffle button Enables shuffle flag to              * true              * */             btnShuffle.setOnClickListener(new View.OnClickListener() {                  @Override                 public void onClick(View arg0) {                     if (isShuffle) {                         isShuffle = false;                         Toast.makeText(getApplicationContext(),                                 "Shuffle is OFF", Toast.LENGTH_SHORT).show();                         btnShuffle.setImageResource(R.drawable.btn_shuffle);                     } else {                         // make repeat to true                         isShuffle = true;                         Toast.makeText(getApplicationContext(),                                 "Shuffle is ON", Toast.LENGTH_SHORT).show();                         // make shuffle to false                         isRepeat = false;                         btnShuffle                                 .setImageResource(R.drawable.btn_shuffle_focused);                         btnRepeat.setImageResource(R.drawable.btn_repeat);                     }                 }             });          } catch (Exception e) {             e.printStackTrace();             Toast.makeText(getApplicationContext(),                     e.getClass().getName() + " " + e.getMessage(),                     Toast.LENGTH_LONG).show();         }      }     /**      * Receiving song index from playlist view and play the song      * */     @Override     protected void onActivityResult(int requestCode, int resultCode, Intent data) {         super.onActivityResult(requestCode, resultCode, data);         if (resultCode == 100) {             currentSongIndex = data.getExtras().getInt("songIndex");             // play selected song             playSong(currentSongIndex);         }      }      // -- onPause, unregister broadcast receiver. To improve, also save screen data ---     @Override     protected void onPause() {         // Unregister broadcast receiver         if (mBroadcastIsRegistered) {             unregisterReceiver(broadcastReceiver);             mBroadcastIsRegistered = false;         }         super.onPause();     }      // -- onResume register broadcast receiver. To improve, retrieve saved screen data ---     @Override     protected void onResume() {         // Register broadcast receiver         if (!mBroadcastIsRegistered) {             registerReceiver(broadcastReceiver, new IntentFilter(                     myPlayService.BROADCAST_ACTION));             mBroadcastIsRegistered = true;         }         super.onResume();     }      // -- Broadcast Receiver to update position of seekbar from service --     private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {         public void onReceive(Context context, Intent serviceIntent) {             updateUI(serviceIntent);         }     };      private void updateUI(Intent serviceIntent) {         String counter = serviceIntent.getStringExtra("counter");         String mediamax = serviceIntent.getStringExtra("mediamax");         String strSongEnded = serviceIntent.getStringExtra("song_ended");         seekProgress = Integer.parseInt(counter);          seekMax = Integer.parseInt(mediamax);         songEnded = Integer.parseInt(strSongEnded);         songProgressBar.setMax(seekMax);         songProgressBar.setProgress(seekProgress);         // Displaying Total Duration time         songTotalDurationLabel.setText("" + utils.milliSecondsToTimer(seekMax));         // Displaying time completed playing         songCurrentDurationLabel.setText(""                 + utils.milliSecondsToTimer(seekProgress));          if (songEnded == 1) {             // check for repeat is ON or OFF             if (isRepeat) {                 // repeat is on play same song again                 playSong(currentSongIndex);             } else if (isShuffle) {                 // shuffle is on - play a random song                 Random rand = new Random();                 currentSongIndex = rand.nextInt((songsList.size() - 1) - 0 + 1) + 0;                 playSong(currentSongIndex);             } else {                 // no repeat or shuffle ON - play next song                 if (currentSongIndex < (songsList.size() - 1)) {                     playSong(currentSongIndex + 1);                     currentSongIndex = currentSongIndex + 1;                 } else {                     // play first song                     playSong(0);                     currentSongIndex = 0;                 }             }         }     }      // Send a message to Server to pause     private void pausingBroadcast() {         // Log.v(TAG, "BufferCompleteSent");         broadcastStateIntent.putExtra("Broadcasting", "0");         paused = true;         btnPlay.setImageResource(R.drawable.btn_play);         sendBroadcast(broadcastStateIntent);      }      // Send a message to Server to resume     private void resumingBroadcast() {         broadcastStateIntent.putExtra("Broadcasting", "1");         paused = false;         btnPlay.setImageResource(R.drawable.btn_pause);         sendBroadcast(broadcastStateIntent);      }       // Function to play a song     public void playSong(int songIndex) {          stopMyPlayService();         paused = false;         startedPlaying = true;         serviceIntent.putExtra("currentSongIndex", songIndex);          // -- Register receiver for seekbar--         registerReceiver(broadcastReceiver, new IntentFilter(                 myPlayService.BROADCAST_ACTION));         mBroadcastIsRegistered = true;          try {              startService(serviceIntent);              // Displaying Song title             String songTitle = songsList.get(songIndex).get("songTitle");             songTitleLabel.setText(songTitle);              // Changing Button Image to pause image             btnPlay.setImageResource(R.drawable.btn_pause);              // set Progress bar values             songProgressBar.setProgress(0);             songProgressBar.setMax(100);          } catch (Exception e) {             e.printStackTrace();             Toast.makeText(getApplicationContext(),                     e.getClass().getName() + " " + e.getMessage(),                     Toast.LENGTH_LONG).show();         }     }      private void stopMyPlayService() {          // --Unregister broadcastReceiver for seekbar         if (mBroadcastIsRegistered) {             try {                 unregisterReceiver(broadcastReceiver);                  mBroadcastIsRegistered = false;             } catch (Exception e) {                 // TODO Auto-generated catch block                 e.printStackTrace();                 Toast.makeText(                 getApplicationContext(),                 e.getClass().getName() + " " + e.getMessage(),                 Toast.LENGTH_LONG).show();             }         }          try {             stopService(serviceIntent);          } catch (Exception e) {             e.printStackTrace();             Toast.makeText(getApplicationContext(),                     e.getClass().getName() + " " + e.getMessage(),                     Toast.LENGTH_LONG).show();         }     }      // --- When user manually moves seekbar, broadcast new position to service     @Override     public void onProgressChanged(SeekBar sb, int progress, boolean fromUser) {         // TODO Auto-generated method stub         if (fromUser) {             seekPos = sb.getProgress();             intent.putExtra("seekpos", seekPos);             sendBroadcast(intent);         }     }      @Override     public void onStartTrackingTouch(SeekBar arg0) {         // TODO Auto-generated method stub      }      @Override     public void onStopTrackingTouch(SeekBar arg0) {         // TODO Auto-generated method stub      }  } 

myPlayService : (the class which is broadcasting messages)

public class myPlayService extends Service implements OnCompletionListener,         OnPreparedListener, OnSeekCompleteListener, OnErrorListener {      // Media Player     private MediaPlayer mp;      private int currentSongIndex;     private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();     private SongsManager songManager;      // Pausing when phone call     private boolean isPausedInCall = false;     private PhoneStateListener phoneStateListener;     private TelephonyManager telephonyManager;      // Declare headsetSwitch variable     private int headsetSwitch = 1;      // ---Variables for seekbar processing---     Intent seekIntent;     String sntSeekPos;     int intSeekPos;     int mediaPosition;     int mediaMax;     private final Handler handler = new Handler();     private int songEnded = 0;     public static final String BROADCAST_ACTION = "com.ayush.mymusicplayer.seekprogress";      public void onCreate() {          // ---Set up intent for seekbar broadcast ---         seekIntent = new Intent(BROADCAST_ACTION);          // Register headset receiver         registerReceiver(headsetReceiver, new IntentFilter(                 Intent.ACTION_HEADSET_PLUG));          songManager = new SongsManager();         songsList = songManager.getPlayList();          mp = new MediaPlayer();         mp.setOnCompletionListener(this);         mp.setOnPreparedListener(this);         mp.setOnSeekCompleteListener(this);         mp.setOnErrorListener(this);         mp.reset();      }      public int onStartCommand(Intent intent, int flags, int startId) {          // ---Set up receiver for State change ---         registerReceiver(broadcastActivityReceiver, new IntentFilter(                 MyMainActivity.BROADCASTING));          // ---Set up receiver for seekbar change ---         registerReceiver(broadcastReceiver, new IntentFilter(                 MyMainActivity.BROADCAST_SEEKBAR));          // Manage incoming phone calls during playback. Pause mp on incoming,         // resume on hangup.         // -----------------------------------------------------------------------------------         // Get the telephony manager         telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);         phoneStateListener = new PhoneStateListener() {             @Override             public void onCallStateChanged(int state, String incomingNumber) {                 switch (state) {                 case TelephonyManager.CALL_STATE_OFFHOOK:                 case TelephonyManager.CALL_STATE_RINGING:                     if (mp != null) {                         pauseMedia();                         isPausedInCall = true;                     }                      break;                 case TelephonyManager.CALL_STATE_IDLE:                     // Phone idle. Start playing.                     if (mp != null) {                         if (isPausedInCall) {                             isPausedInCall = false;                             playMedia();                         }                      }                     break;                 }              }         };          // Register the listener with the telephony manager         telephonyManager.listen(phoneStateListener,                 PhoneStateListener.LISTEN_CALL_STATE);          // Getting song Index from MyMainActivity         currentSongIndex = intent.getExtras().getInt("currentSongIndex");         mp.reset();          if (!mp.isPlaying()) {             try {                  mp.setDataSource(songsList.get(currentSongIndex)                         .get("songPath"));                 mp.prepareAsync();              } catch (IllegalArgumentException e) {                 e.printStackTrace();             } catch (IllegalStateException e) {                 e.printStackTrace();             } catch (IOException e) {             }         }          // --- Set up seekbar handler ---         setupHandler();          return START_STICKY;      }      // If headset gets unplugged, stop music and service.     private BroadcastReceiver headsetReceiver = new BroadcastReceiver() {         private boolean headsetConnected = false;          @Override         public void onReceive(Context context, Intent intent) {             // TODO Auto-generated method stub             if (intent.hasExtra("state")) {                 if (headsetConnected && intent.getIntExtra("state", 0) == 0) {                     headsetConnected = false;                     headsetSwitch = 0;                 } else if (!headsetConnected                         && intent.getIntExtra("state", 0) == 1) {                     headsetConnected = true;                     headsetSwitch = 1;                 }             }              switch (headsetSwitch) {             case (0):                 pauseMedia();                 break;             case (1):                 playMedia();                 break;             }         }     };      // ---Send seekbar info to activity----     private void setupHandler() {         handler.removeCallbacks(sendUpdatesToUI);         handler.postDelayed(sendUpdatesToUI, 250); // 0.25 second     }      private Runnable sendUpdatesToUI = new Runnable() {         public void run() {             LogMediaPosition();             handler.postDelayed(this, 250); // 0.25 seconds         }     };      private void LogMediaPosition() {         if (mp.isPlaying()) {             mediaPosition = mp.getCurrentPosition();             mediaMax = mp.getDuration();             seekIntent.putExtra("counter", String.valueOf(mediaPosition));             seekIntent.putExtra("mediamax", String.valueOf(mediaMax));             seekIntent.putExtra("song_ended", String.valueOf(songEnded));             sendBroadcast(seekIntent);         }      }      // --Receive seekbar position if it has been changed by the user in the     // activity     private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {         @Override         public void onReceive(Context context, Intent intent) {             updateSeekPos(intent);         }     };      // Update seek position from Activity     public void updateSeekPos(Intent intent) {         int seekPos = intent.getIntExtra("seekpos", 0);         if (mp.isPlaying()) {             handler.removeCallbacks(sendUpdatesToUI);             mp.seekTo(seekPos);             setupHandler();         }     }      // Play Song After Complition !     @Override     public void onSeekComplete(MediaPlayer mp) {         if (!mp.isPlaying()) {             playMedia();         }      }      public void onPrepared(MediaPlayer arg0) {         // Send a message to activity to end progress dialogue         playMedia();     }      // Set up broadcast receiver     private BroadcastReceiver broadcastActivityReceiver = new BroadcastReceiver() {         @Override         public void onReceive(Context context, Intent broadcastIntent) {             String broadcastValue = broadcastIntent                     .getStringExtra("Broadcasting");             int broadcastIntValue = Integer.parseInt(broadcastValue);              switch (broadcastIntValue) {             case 0:                 pauseMedia();                 break;              case 1:                 playMedia();                 break;             }         }     };      public void pauseMedia() {         if (mp.isPlaying()) {             mp.pause();         }     }      public void playMedia() {         if (!mp.isPlaying()) {             mp.start();         }     }      @Override     public void onCompletion(MediaPlayer arg0) {         seekIntent.putExtra("song_ended", "1");         sendBroadcast(seekIntent);         stopSelf();     }      @Override     public void onDestroy() {         super.onDestroy();         if (mp != null) {             if (mp.isPlaying()) {                 mp.stop();             }             mp.reset();             mp.release();         }         if (phoneStateListener != null) {             telephonyManager.listen(phoneStateListener,                     PhoneStateListener.LISTEN_NONE);         }         // Stop the seekbar handler from sending updates to UI         handler.removeCallbacks(sendUpdatesToUI);         unregisterReceiver(headsetReceiver);         // Unregister seekbar receiver         unregisterReceiver(broadcastReceiver);         unregisterReceiver(broadcastActivityReceiver);         stopSelf();     }      // ---Error processing ---     @Override     public boolean onError(MediaPlayer mp, int what, int extra) {         switch (what) {         case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:             Toast.makeText(this,                     "MEDIA ERROR NOT VALID FOR PROGRESSIVE PLAYBACK " + extra,                     Toast.LENGTH_SHORT).show();             break;         case MediaPlayer.MEDIA_ERROR_SERVER_DIED:             Toast.makeText(this, "MEDIA ERROR SERVER DIED " + extra,                     Toast.LENGTH_SHORT).show();             break;         case MediaPlayer.MEDIA_ERROR_UNKNOWN:             Toast.makeText(this, "MEDIA ERROR UNKNOWN " + extra,                     Toast.LENGTH_SHORT).show();             break;         }         return false;     }      @Override     public IBinder onBind(Intent arg0) {         // TODO Auto-generated method stub         return null;     }  } 

Thanks In Advance ! :)

回答1:

See this part in the error message:

 NumberFormatException: Invalid int: "null" 

you seem to try to parse the String "null" to an int. This is not possible and will therefore throw NumberFormatException.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!