作者gary771016 (一日测 终身测)
看板AndroidDev
标题[问题] 使用service 播放音乐问题
时间Sat Feb 25 18:23:06 2017
大致列出比较可能出问题的地方
Manifest:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<service android:name=".MediaPlayService" android:enabled="true"/>
MainActivity.java:
Intent it = new Intent(MainActivity.this, MediaPlayService.class);
startService(it);
MediaPlayerService.java:
public class MediaPlayService extends Service {
private MediaPlayer player;
@Nullable
@Override
public IBinder onBind(Intent intent) { return null; }
@Override
public void onDestroy() {
super.onDestroy();
player.stop();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Uri uri=Uri.fromFile(
new File(Environment.getExternalStorageDirectory().getPath()+"/fate.mp3"));
player=MediaPlayer.create(this,uri);
player.start();
return super.onStartCommand(intent, flags, startId);
}
}
Error Log:
java.lang.RuntimeException: Unable to start service
com.example.mrcat.lesson_052.MediaPlayService@a48b8eb with Intent {
cmp=com.example.mrcat.lesson_052/.MediaPlayService }:
java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.media.MediaPlayer.start()' on a null object reference
是指找不到吗?路径不对?
使用 startActivity(it)
路径一样可以直接拨放 (只是会跳去音乐播放器)
这次想在背景直接launch 照着书打也是失败...(书的sample project 也一样会crash)
音乐是放在内存的 (无SD card)
Android 6.0.1 (Sony)
还请大神解惑
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.100.99
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1488018190.A.72F.html
1F:推 aids61517: READ_EXTERNAL_STORAGE 好像需要要权限 02/25 21:10
2F:→ gary771016: 是指root吗? 它也没有跳出是否同意权限... 02/25 21:23
3F:→ ssccg: 跳出是要自己做的,你有做动态要权限? 02/25 23:40
4F:→ ssccg: 去App设定里面的权限看那个权限有没有开,没有的话开起来试 02/25 23:41
5F:→ gary771016: 大大又救了我一次 需要去APP选项手动开启权限 02/26 02:23
6F:推 aids61517: android 6.0以上某些权限需要动态跟使用者要 02/26 15:22
8F:→ aids61517: 基本上有出现在里面的权限都要额外要 02/26 15:23
9F:推 WiLLSTW: 6.0之後危险权限都被要求要动态确认 03/01 15:14
10F:推 ray650128: Android 6.0以上存取外部装置需要权限喔! 05/18 22:57