当前位置: 代码迷 >> Android >> 展示歌词就出错!为什么
  详细解决方案

展示歌词就出错!为什么

热度:52   发布时间:2016-05-01 17:49:59.0
显示歌词就出错!为什么?
问题:同步播放歌词,但一点击播放就出错了。

log:

06-06 07:59:32.087: E/AndroidRuntime(1326): FATAL EXCEPTION: main
06-06 07:59:32.087: E/AndroidRuntime(1326): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
06-06 07:59:32.087: E/AndroidRuntime(1326): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257)
06-06 07:59:32.087: E/AndroidRuntime(1326): at java.util.ArrayList.get(ArrayList.java:311)
06-06 07:59:32.087: E/AndroidRuntime(1326): at napo.mp3player.PlayerActivity$UpdateTimeCallback.<init>(PlayerActivity.java:145)
06-06 07:59:32.087: E/AndroidRuntime(1326): at napo.mp3player.PlayerActivity.prepareLrc(PlayerActivity.java:72)
06-06 07:59:32.087: E/AndroidRuntime(1326): at napo.mp3player.PlayerActivity.access$1(PlayerActivity.java:67)
06-06 07:59:32.087: E/AndroidRuntime(1326): at napo.mp3player.PlayerActivity$BeginButtonListener.onClick(PlayerActivity.java:91)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.view.View.performClick(View.java:2485)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.view.View$PerformClick.run(View.java:9080)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.os.Handler.handleCallback(Handler.java:587)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.os.Handler.dispatchMessage(Handler.java:92)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.os.Looper.loop(Looper.java:123)
06-06 07:59:32.087: E/AndroidRuntime(1326): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-06 07:59:32.087: E/AndroidRuntime(1326): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 07:59:32.087: E/AndroidRuntime(1326): at java.lang.reflect.Method.invoke(Method.java:507)
06-06 07:59:32.087: E/AndroidRuntime(1326): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-06 07:59:32.087: E/AndroidRuntime(1326): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-06 07:59:32.087: E/AndroidRuntime(1326): at dalvik.system.NativeStart.main(Native Method)
06-06 07:59:34.386: E/InputDispatcher(68): channel '406dd650 napo.mp3player/napo.mp3player.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
06-06 07:59:34.386: E/InputDispatcher(68): channel '406dd650 napo.mp3player/napo.mp3player.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
06-06 07:59:34.636: E/InputDispatcher(68): Received spurious receive callback for unknown input channel. fd=165, events=0x8


PlayerActivity.java的代码(145行是times = queues.get(0); ):

package napo.mp3player;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.nio.channels.FileLockInterruptionException;
import java.util.ArrayList;
import java.util.Queue;

import napo.lrc.LrcProcessor;
import napo.model.Mp3Info;
import napo.mp3player.service.PlayerService;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.text.style.UpdateAppearance;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;

public class PlayerActivity extends Activity{
ImageButton beginButton = null;
ImageButton pauseButton = null;
ImageButton stopButton = null;
MediaPlayer mediaPlayer = null;

private ArrayList<Queue> queues = null;
private TextView lrcTextView = null;
private Handler handler = new Handler();
private UpdateTimeCallback updateTimeCallback = null;
private long begin = 0;
private long nextTimeMill = 0;
private long currentTimeMill = 0;
  相关解决方案