App funktioniert auf Android 5, auf 6 nicht

Java xyrse123

Bekanntes Mitglied
Hallo,
ich wollte eine MP3-Player App machen. Ich habe die (noch) nicht fertige App auf meinem Handy mit Android 5 getestet und konnte auch Musik abspielen. Auf einem Handy mit Android 6 schließt sich die App nach dem Öffnen sofort wieder ( Meistens kommt ja sowas wie "App reagiert nicht", ist hier aber nicht der Fall).

Java:
import android.content.ContentResolver;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private List<String> list;
    private ContentResolver cr;
    private List<Song> songList = new ArrayList<Song>();
    private MediaPlayer mediaPlayer = new MediaPlayer();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cr = getContentResolver();
        list = new ArrayList<String>();
        listView = findViewById(R.id.listView);

        getAudioFiles(cr);
        createListView();
    }

    private void getAudioFiles(ContentResolver cr) {
        String[] protection = {MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.YEAR,
                MediaStore.Audio.Media.TRACK, MediaStore.Audio.Media.SIZE, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media._ID};

        Cursor c = cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, protection, null, null, null);

        if(c!=null) {

            while(c.moveToNext()) {

                String title = c.getString(0);
                String interpret = c.getString(1);
                String album = c.getString(2);
                int year = c.getInt(3);
                int track = c.getInt(4);
                int trackSize = c.getInt(5);
                String path =c.getString(6);
                Song s = new Song(title,interpret, album, year, track, trackSize, path);

                songList.add(s);
            }
        }
    }

    private void createListView() {

for(Song s: songList) {
    list.add(s.toString());
}
        listView.setAdapter(new ArrayAdapter<String>(this,R.layout.activity_main, R.id.textView,list));
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

             if(mediaPlayer.isPlaying()) {
                 mediaPlayer.stop();
                 mediaPlayer.release();
                 mediaPlayer = new MediaPlayer();
             }

                 String s = (String) listView.getItemAtPosition(position);

             int index = 0;
                 int tmp = 0;

                 for (int i = 0; i < s.length(); i++) {
                     index = index + 1;
                     char c = s.charAt(i);

                     if (c == '/') {
                         tmp = index;
                         break;
                     }
                 }

                 String sub = s.substring(tmp - 1, s.length() - 1);
                 Toast to = Toast.makeText(getBaseContext(), "" + sub, Toast.LENGTH_LONG);
                 to.show();
                 try {
                     mediaPlayer.setDataSource(sub);
                     mediaPlayer.prepare();
                     mediaPlayer.start();

                 } catch (IOException e) {
                     e.printStackTrace();
                 }
             }
     });
    }

}

Die Fehlermeldung auf Handy mit Android 6:

W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate
--boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default
--dex-file=/data/app/com.example.admin.mp3player-1/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/arm64/data@app@com.example.admin.mp3player-1@split_lib_dependencies_apk.apk@classes.dex)
because non-0 exit status

Woran liegt das? Fehlen bei Android 6 noch irgendwelche Berechtigungen?
Danke im Vorraus.
 
Ich glaube es hat sich erledigt. Ich musste der App in den Handy Einstellungen noch die Berechtigung geben. Dabei dachte ich es würde im Manifest ausreichen.
 

Neue Themen


Zurück
Oben