为什么我的应用无法读取内部存储空间 [英] Why my app can't read Internal storage

查看:123
本文介绍了为什么我的应用无法读取内部存储空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的清单:

this my manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    package="com.playmusic.ghufron"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk>
        android:minSdkVersion="9"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    

    <application>
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity>
            android:name="com.playmusic.ghufron.MainActivity"
            android:label="@string/app_name" 
            android:launchMode="singleTop"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <service android:name="com.playmusic.ghufron.MusicService" />
            
       
    </application>

</uses-sdk></manifest>







这是我的mainActivity.java






this my mainActivity.java

package com.playmusic.ghufron;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

import com.playmusic.ghufron.MusicService.MusicBinder;



import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
import android.app.Activity;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.database.Cursor;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.MediaController.MediaPlayerControl;



public class MainActivity extends Activity implements MediaPlayerControl {

	//song list variables
	private ArrayList<song> songList;
	private ListView songView;

	//service
	private MusicService musicSrv;
	private Intent playIntent;
	//binding
	private boolean musicBound=false;

	//controller
	private MusicController controller;

	//activity and playback pause flags
	private boolean paused=false, playbackPaused=false;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		//retrieve list view
		songView = (ListView)findViewById(R.id.song_list);
		//instantiate list
		songList = new ArrayList<song>();
		//get songs from device
		getSongList();
		//sort alphabetically by title
		Collections.sort(songList, new Comparator<song>(){
			public int compare(Song a, Song b){
				return a.getTitle().compareTo(b.getTitle());
			}
		});
		//create and set adapter
		SongAdapter songAdt = new SongAdapter(this, songList);
		songView.setAdapter(songAdt);

		//setup controller
		setController();
	}

	//connect to the service
	private ServiceConnection musicConnection = new ServiceConnection(){

		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			MusicBinder binder = (MusicBinder)service;
			//get service
			musicSrv = binder.getService();
			//pass list
			musicSrv.setList(songList);
			musicBound = true;
		}

		@Override
		public void onServiceDisconnected(ComponentName name) {
			musicBound = false;
		}
	};

	//start and bind the service when the activity starts
	@Override
	protected void onStart() {
		super.onStart();
		if(playIntent==null){
			playIntent = new Intent(this, MusicService.class);
			bindService(playIntent, musicConnection, Context.BIND_AUTO_CREATE);
			startService(playIntent);
		}
	}

	//user song select
	public void songPicked(View view){
		musicSrv.setSong(Integer.parseInt(view.getTag().toString()));
		musicSrv.playSong();
		if(playbackPaused){
			setController();
			playbackPaused=false;
		}
		controller.show(0);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		//menu item selected
		switch (item.getItemId()) {
		case R.id.action_shuffle:
			musicSrv.setShuffle();
			break;
		case R.id.action_end:
			stopService(playIntent);
			musicSrv=null;
			System.exit(0);
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	//method to retrieve song info from device
	public void getSongList(){
		//query external audio
		ContentResolver musicResolver = getContentResolver();
		Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
		Uri musicUri2= android.provider.MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
	
		Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null);
		Cursor musicCursor2 = musicResolver.query(musicUri, null, null, null, null);
		//iterate over results if valid
		if(musicCursor2!=null && musicCursor2.moveToFirst()){
			//get columns
			int titleColumn2 = musicCursor2.getColumnIndex
					(android.provider.MediaStore.Audio.Media.TITLE);
			int idColumn2 = musicCursor2.getColumnIndex
					(android.provider.MediaStore.Audio.Media._ID);
			int artistColumn2 = musicCursor2.getColumnIndex
					(android.provider.MediaStore.Audio.Media.ARTIST);
			//add songs to list
			do {
				long thisId = musicCursor2.getLong(idColumn2);
				String thisTitle = musicCursor2.getString(titleColumn2);
				String thisArtist = musicCursor2.getString(artistColumn2);
				songList.add(new Song(thisId, thisTitle, thisArtist));
			} 
			while (musicCursor.moveToNext());
		
		if(musicCursor!=null && musicCursor.moveToFirst()){
			//get columns
			int titleColumn = musicCursor.getColumnIndex
					(android.provider.MediaStore.Audio.Media.TITLE);
			int idColumn = musicCursor.getColumnIndex
					(android.provider.MediaStore.Audio.Media._ID);
			int artistColumn = musicCursor.getColumnIndex
					(android.provider.MediaStore.Audio.Media.ARTIST);
			//add songs to list
			do {
				long thisId = musicCursor.getLong(idColumn);
				String thisTitle = musicCursor.getString(titleColumn);
				String thisArtist = musicCursor.getString(artistColumn);
				songList.add(new Song(thisId, thisTitle, thisArtist));
			} 
			while (musicCursor.moveToNext());
		}}
	}

	@Override
	public boolean canPause() {
		return true;
	}

	@Override
	public boolean canSeekBackward() {
		return true;
	}

	@Override
	public boolean canSeekForward() {
		return true;
	}

	@Override
	public int getAudioSessionId() {
		return 0;
	}

	@Override
	public int getBufferPercentage() {
		return 0;
	}

	@Override
	public int getCurrentPosition() {
		if(musicSrv!=null && musicBound && musicSrv.isPng())
			return musicSrv.getPosn();
		else return 0;
	}

	@Override
	public int getDuration() {
		if(musicSrv!=null && musicBound && musicSrv.isPng())
			return musicSrv.getDur();
		else return 0;
	}

	@Override
	public boolean isPlaying() {
		if(musicSrv!=null && musicBound)
			return musicSrv.isPng();
		return false;
	}

	@Override
	public void pause() {
		playbackPaused=true;
		musicSrv.pausePlayer();
	}

	@Override
	public void seekTo(int pos) {
		musicSrv.seek(pos);
	}

	@Override
	public void start() {
		musicSrv.go();
	}

	//set the controller up
	private void setController(){
		controller = new MusicController(this);
		//set previous and next button listeners
		controller.setPrevNextListeners(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				playNext();
			}
		}, new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				playPrev();
			}
		});
		//set and show
		controller.setMediaPlayer(this);
		controller.setAnchorView(findViewById(R.id.song_list));
		controller.setEnabled(true);
	}

	private void playNext(){
		musicSrv.playNext();
		if(playbackPaused){ 
			setController();
			playbackPaused=false;
		}
		controller.show(0);
	}

	private void playPrev(){
		musicSrv.playPrev();
		if(playbackPaused){
			setController();
			playbackPaused=false;
		}
		controller.show(0);
	}

	@Override
	protected void onPause(){
		super.onPause();
		paused=true;
	}

	@Override
	protected void onResume(){
		super.onResume();
		if(paused){
			setController();
			paused=false;
		}
	}

	@Override
	protected void onStop() {
		controller.hide();
		super.onStop();
	}

	@Override
	protected void onDestroy() {
		stopService(playIntent);
		musicSrv=null;
		super.onDestroy();
	}

}





这是我的Logcat:





this my Logcat:

W/dalvikvm(22608): VFY: unable to resolve virtual method 163: Landroid/app/Notification$Builder;.build ()Landroid/app/Notification;<br />
I/Adreno200-EGLSUB(22608): <configwindowmatch:2081 xmlns:configwindowmatch="#unknown">: Format RGBA_8888.<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x51e75000 size:3702784 offset:3088384 fd:69<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52356000 size:614400 offset:0 fd:74<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52516000 size:1228800 offset:614400 fd:77<br />
E/MediaPlayer(22608): Uri is  content://media/external/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): Uri is  content://media/internal/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): attachNewPlayer called in state 2<br />
E/MUSIC SERVICE(22608): Error setting data source<br />
E/MUSIC SERVICE(22608): java.lang.IllegalStateException<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(Native Method)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1000)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:863)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:812)<br />
E/MUSIC SERVICE(22608): 	at com.playmusic.ghufron.MusicService.playSong(MusicService.java:109)<br />
E/MUSIC SERVICE(22608): 	at com.playmusic.ghufron.MainActivity.songPicked(MainActivity.java:105)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invokeNative(Native Method)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invoke(Method.java:511)<br />
E/MUSIC SERVICE(22608): 	at android.view.View$1.onClick(View.java:3052)<br />
E/MUSIC SERVICE(22608): 	at android.view.View.performClick(View.java:3528)<br />
E/MUSIC SERVICE(22608): 	at android.view.View$PerformClick.run(View.java:14235)<br />
E/MUSIC SERVICE(22608): 	at android.os.Handler.handleCallback(Handler.java:605)<br />
E/MUSIC SERVICE(22608): 	at android.os.Handler.dispatchMessage(Handler.java:92)<br />
E/MUSIC SERVICE(22608): 	at android.os.Looper.loop(Looper.java:137)<br />
E/MUSIC SERVICE(22608): 	at android.app.ActivityThread.main(ActivityThread.java:4424)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invokeNative(Native Method)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invoke(Method.java:511)<br />
E/MUSIC SERVICE(22608): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)<br />
E/MUSIC SERVICE(22608): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)<br />
E/MUSIC SERVICE(22608): 	at dalvik.system.NativeStart.main(Native Method)<br />
D/MediaPlayer(22608): start() mUri is content://media/internal/audio/media/45<br />
I/Adreno200-EGLSUB(22608): <configwindowmatch:2081>: Format RGBA_8888.<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52742000 size:2670592 offset:2547712 fd:80<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52a0e000 size:2904064 offset:2781184 fd:86<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52cd3000 size:3026944 offset:2904064 fd:89<br />
E/MediaPlayer(22608): Uri is  content://media/external/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): Uri is  content://media/internal/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): attachNewPlayer called in state 2<br />
E/MUSIC SERVICE(22608): Error setting data source<br />
E/MUSIC SERVICE(22608): java.lang.IllegalStateException<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(Native Method)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1000)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:863)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer.setDataSource(MediaPlayer.java:812)<br />
E/MUSIC SERVICE(22608): 	at com.playmusic.ghufron.MusicService.playSong(MusicService.java:109)<br />
E/MUSIC SERVICE(22608): 	at com.playmusic.ghufron.MusicService.playNext(MusicService.java:209)<br />
E/MUSIC SERVICE(22608): 	at com.playmusic.ghufron.MusicService.onCompletion(MusicService.java:127)<br />
E/MUSIC SERVICE(22608): 	at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1763)<br />
E/MUSIC SERVICE(22608): 	at android.os.Handler.dispatchMessage(Handler.java:99)<br />
E/MUSIC SERVICE(22608): 	at android.os.Looper.loop(Looper.java:137)<br />
E/MUSIC SERVICE(22608): 	at android.app.ActivityThread.main(ActivityThread.java:4424)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invokeNative(Native Method)<br />
E/MUSIC SERVICE(22608): 	at java.lang.reflect.Method.invoke(Method.java:511)<br />
E/MUSIC SERVICE(22608): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:817)<br />
E/MUSIC SERVICE(22608): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)<br />
E/MUSIC SERVICE(22608): 	at dalvik.system.NativeStart.main(Native Method)<br />
D/MediaPlayer(22608): start() mUri is content://media/internal/audio/media/45<br />
D/MediaPlayer(22608): pause() mUri is content://media/internal/audio/media/45<br />
<br />



和我的音乐服务:


and this my music service:

package com.playmusic.ghufron;

import java.util.ArrayList;
import java.util.Random;

import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
import android.content.ContentUris;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Binder;
import android.os.IBinder;
import android.os.PowerManager;
import android.util.Log;



public class MusicService extends Service implements 
MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener,
MediaPlayer.OnCompletionListener {

	//media player
	private MediaPlayer player;
	//song list
	private ArrayList<song> songs;
	//current position
	private int songPosn;
	//binder
	private final IBinder musicBind = new MusicBinder();
	//title of current song
	private String songTitle="";
	//notification id
	private static final int NOTIFY_ID=1;
	//shuffle flag and random
	private boolean shuffle=false;
	private Random rand;

	public void onCreate(){
		//create the service
		super.onCreate();
		//initialize position
		songPosn=0;
		//random
		rand=new Random();
		//create player
		player = new MediaPlayer();
		//initialize
		initMusicPlayer();
	}

	public void initMusicPlayer(){
		//set player properties
		player.setWakeMode(getApplicationContext(), 
				PowerManager.PARTIAL_WAKE_LOCK);
		player.setAudioStreamType(AudioManager.STREAM_MUSIC);
		//set listeners
		player.setOnPreparedListener(this);
		player.setOnCompletionListener(this);
		player.setOnErrorListener(this);
	}

	//pass song list
	public void setList(ArrayList<song> theSongs){
		songs=theSongs;
	}

	//binder
	public class MusicBinder extends Binder {
		MusicService getService() { 
			return MusicService.this;
		}
	}

	//activity will bind to service
	@Override
	public IBinder onBind(Intent intent) {
		return musicBind;
	}

	//release resources when unbind
	@Override
	public boolean onUnbind(Intent intent){
		player.stop();
		player.release();
		return false;
	}

	//play a song
	public void playSong(){
		//play
		player.reset();
		//get song
		Song playSong = songs.get(songPosn);
		//get title
		songTitle=playSong.getTitle();
		//get id
		long currSong = playSong.getID();
		//set uri
		Uri trackUri = ContentUris.withAppendedId(
				android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
				currSong);
		Uri trackUri2 = ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.INTERNAL_CONTENT_URI,currSong);
		//set the data source
		try{ 
			player.setDataSource(getApplicationContext(), trackUri);
			player.setDataSource(getApplicationContext(),trackUri2);
		}
		catch(Exception e){
			Log.e("MUSIC SERVICE", "Error setting data source", e);
		}
		player.prepareAsync(); 
	}

	//set the song
	public void setSong(int songIndex){
		songPosn=songIndex;	
	}

	@Override
	public void onCompletion(MediaPlayer mp) {
		//check if playback has reached the end of a track
		if(player.getCurrentPosition()>0){
			mp.reset();
			playNext();
		}
	}

	@Override
	public boolean onError(MediaPlayer mp, int what, int extra) {
		Log.v("MUSIC PLAYER", "Playback Error");
		mp.reset();
		return false;
	}

	@SuppressWarnings("deprecation")
	@Override
	public void onPrepared(MediaPlayer mp) {
		//start playback
		mp.start();
		//notification
		Intent notIntent = new Intent(this, MainActivity.class);
		notIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		PendingIntent pendInt = PendingIntent.getActivity(this, 0,
				notIntent, PendingIntent.FLAG_UPDATE_CURRENT);

		Notification.Builder builder = new Notification.Builder(this);

		builder.setContentIntent(pendInt)
		.setSmallIcon(R.drawable.play)
		.setTicker(songTitle)
		.setOngoing(true)
		.setContentTitle("Playing")
		.setContentText(songTitle);
		Notification ya =
			    (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) ?
			        builder.build() : builder.getNotification();
		startForeground(NOTIFY_ID, ya);
		
	}

	//playback methods
	public int getPosn(){
		return player.getCurrentPosition();
	}

	public int getDur(){
		return player.getDuration();
	}

	public boolean isPng(){
		return player.isPlaying();
	}

	public void pausePlayer(){
		player.pause();
	}

	public void seek(int posn){
		player.seekTo(posn);
	}

	public void go(){
		player.start();
	}

	//skip to previous track
	public void playPrev(){
		songPosn--;
		if(songPosn<0) songPosn=songs.size()-1;
		playSong();
	}

	//skip to next
	public void playNext(){
		if(shuffle){
			int newSong = songPosn;
			while(newSong==songPosn){
				newSong=rand.nextInt(songs.size());
			}
			songPosn=newSong;
		}
		else{
			songPosn++;
			if(songPosn>=songs.size()) songPosn=0;
		}
		playSong();
	}

	@Override
	public void onDestroy() {
		stopForeground(true);
	}

	//toggle shuffle
	public void setShuffle(){
		if(shuffle) shuffle=false;
		else shuffle=true;
	}

}

推荐答案

Builder;.build ()Landroid/app/Notification;<br />
I/Adreno200-EGLSUB(22608): <configwindowmatch:2081 xmlns:configwindowmatch=\"#unknown\">: Format RGBA_8888.<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x51e75000 size:3702784 offset:3088384 fd:69<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52356000 size:614400 offset:0 fd:74<br />
D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52516000 size:1228800 offset:614400 fd:77<br />
E/MediaPlayer(22608): Uri is content://media/external/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): Uri is content://media/internal/audio/media/45<br />
D/MediaPlayer(22608): http youtube = false, scheme = content<br />
E/MediaPlayer(22608): attachNewPlayer called in state 2<br />
E/MUSIC SERVICE(22608): Error set ting data source<br />
E/MUSIC SERVICE(22608): java.lang.IllegalStateException<br />
E/MUSIC SERVICE(22608): \tat android.media.MediaPlayer.setDataSource(Native Method)<br />
E/MUSIC SERVICE(22608): \tat android.media.MediaPlayer.setDataSource(MediaPlayer.java:1000)<br />
E/MUSIC SERVICE(22608): \tat android.media.MediaPlayer.setDataSource(MediaPlayer.java:863)<br />
E/MUSIC SERVICE(22608): \tat android.media.MediaPlayer.setDataSource(MediaPlayer.java:812)<br />
E/MUSIC SERVICE(22608): \tat com.playmusic.ghufron.MusicService.playSong(MusicService.java:109)<br />
E/MUSIC SERVICE(22608): \tat com.playmusic.ghufron.MainActivity.songPicked(MainActivity.java:105)<br />
E/MUSIC SERVICE(22608): \tat java.lang.reflect.Method.invokeNative(Native Method)<br />
E/MUSIC SERVICE(22608): \tat java.lang.reflect.Method.invoke(Method.java:511)<br />
E/MUSIC SERVICE(22608): \tat android.view.View
Builder;.build ()Landroid/app/Notification;<br /> I/Adreno200-EGLSUB(22608): <configwindowmatch:2081 xmlns:configwindowmatch="#unknown">: Format RGBA_8888.<br /> D/memalloc(22608): /dev/pmem: Mapped buffer base:0x51e75000 size:3702784 offset:3088384 fd:69<br /> D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52356000 size:614400 offset:0 fd:74<br /> D/memalloc(22608): /dev/pmem: Mapped buffer base:0x52516000 size:1228800 offset:614400 fd:77<br /> E/MediaPlayer(22608): Uri is content://media/external/audio/media/45<br /> D/MediaPlayer(22608): http youtube = false, scheme = content<br /> E/MediaPlayer(22608): Uri is content://media/internal/audio/media/45<br /> D/MediaPlayer(22608): http youtube = false, scheme = content<br /> E/MediaPlayer(22608): attachNewPlayer called in state 2<br /> E/MUSIC SERVICE(22608): Error setting data source<br /> E/MUSIC SERVICE(22608): java.lang.IllegalStateException<br /> E/MUSIC SERVICE(22608): at android.media.MediaPlayer.setDataSource(Native Method)<br /> E/MUSIC SERVICE(22608): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1000)<br /> E/MUSIC SERVICE(22608): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:863)<br /> E/MUSIC SERVICE(22608): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:812)<br /> E/MUSIC SERVICE(22608): at com.playmusic.ghufron.MusicService.playSong(MusicService.java:109)<br /> E/MUSIC SERVICE(22608): at com.playmusic.ghufron.MainActivity.songPicked(MainActivity.java:105)<br /> E/MUSIC SERVICE(22608): at java.lang.reflect.Method.invokeNative(Native Method)<br /> E/MUSIC SERVICE(22608): at java.lang.reflect.Method.invoke(Method.java:511)<br /> E/MUSIC SERVICE(22608): at android.view.View


1.onClic k(View.java:3052)<br />
E/MUSIC SERVICE(22608): \tat android.view.View.performClick(View.java:3528)<br />
E/MUSIC SERVICE(22608): \tat android.view.View
1.onClick(View.java:3052)<br /> E/MUSIC SERVICE(22608): at android.view.View.performClick(View.java:3528)<br /> E/MUSIC SERVICE(22608): at android.view.View


PerformClick.run(View.java:14235)<br />
E/MUSIC SERVICE(22608): \tat android.os.Handler.handleCallback(Handler.java:605)<br />
E/MUSIC SERVICE(22608): \tat android.os.Handler.dispatchMessage(Handler.java:92)<br />
E/MUSIC SERVICE(22608): \tat android.os.Looper.loop(Looper.java:137)<br />
E/MUSIC SERVICE(22608): \tat android.app.ActivityThread.main(ActivityThread.java:4424)<br />
E/MUSIC SERVICE(22608): \tat java.lang.reflect.Method.invokeNative(Native Method)<br />
E/MUSIC SERVICE(22608): \tat java.lang.reflect.Method.invoke(Method.java:511)<br />
E/MUSIC SERVICE(22608): \tat com.android.internal.os.ZygoteInit
PerformClick.run(View.java:14235)<br /> E/MUSIC SERVICE(22608): at android.os.Handler.handleCallback(Handler.java:605)<br /> E/MUSIC SERVICE(22608): at android.os.Handler.dispatchMessage(Handler.java:92)<br /> E/MUSIC SERVICE(22608): at android.os.Looper.loop(Looper.java:137)<br /> E/MUSIC SERVICE(22608): at android.app.ActivityThread.main(ActivityThread.java:4424)<br /> E/MUSIC SERVICE(22608): at java.lang.reflect.Method.invokeNative(Native Method)<br /> E/MUSIC SERVICE(22608): at java.lang.reflect.Method.invoke(Method.java:511)<br /> E/MUSIC SERVICE(22608): at com.android.internal.os.ZygoteInit


这篇关于为什么我的应用无法读取内部存储空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆