【发布时间】:2011-11-26 16:58:11
【问题描述】:
我有一个Service,它接收一个音频文件并用MediaPlayer 播放它。我就是这样称呼我的Service:
private void playAudio(String url) throws Exception {
Intent music = new Intent(this,MusicService.class);
music.putExtra("paths", path);
startService(music);
}
这是我的Service 班级:
class MusicService extends Service implements OnCompletionListener {
MediaPlayer mediaPlayer;
String musicFile;
@Override
public void onCreate() {
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
Toast.makeText(getApplicationContext(), "hello", Toast.LENGTH_LONG).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle e = intent.getExtras();
musicFile= e.getString("paths");
try {
mediaPlayer.prepare();
mediaPlayer.setDataSource(musicFile);
} catch (IllegalArgumentException i) {
// TODO Auto-generated catch block
i.printStackTrace();
} catch (IllegalStateException i) {
// TODO Auto-generated catch block
i.printStackTrace();
} catch (IOException i) {
// TODO Auto-generated catch block
i.printStackTrace();
}
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
return START_STICKY;
}
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
}
Service 永远不会被执行,Toast 永远不会显示,MediaPlayer 不会播放。
我在清单中这样声明它:
<service android:name=".MusicService" android:enabled="true"></service>
我收到一个强制关闭错误,我的日志中出现了这个IllegalAccessException:
java.lang.RuntimeException: Unable to instantiate service unjustentertainment.com.MusicService:
java.lang.IllegalAccessException: access to class not allowed
【问题讨论】:
-
你有例外吗?如果您遇到无法理解的异常,请查看 DDMS/LogCat。
-
是的,我有一些说无法启动服务 IllegalAccessException
-
DEBUG/dalvikvm(12):新实例失败:Lunjustentertainment/com/MusicService; Landroid/app/ActivityThread 无法访问; .086: DEBUG/AndroidRuntime(1252): 关闭 VM 11-26 12:07:46.086: WARN/dalvikvm(1252): threadid=1: thread exiting with unaught exception (group=0x4001d800) 12:07:46.137: ERROR /AndroidRuntime(1252): 致命异常: main 12:07:46.137: 错误/AndroidRuntime(1252): java.lang.RuntimeException: 无法实例化服务 unjustentertainment.com.MusicService: java.lang.IllegalAccessException: 不允许访问类11-26 12:07:46.137: 错误/AndroidRuntime(1252):
-
将堆栈跟踪添加到问题中。
标签: android android-intent android-service media-player