首页 > 解决方案 > 致命异常:Android 机器上的 Thread-3

问题描述

我将旧代码用于音频播放列表播放器。我让它在所有模拟器上运行,并在我的安卓 8.1.0 手机上试用过。有问题的设备是运行 7.1.2(root)的 Android 机器。我不够聪明,无法弄清楚问题所在,请帮助。

据我所见,该应用程序仅在此带有 Nougat Android 的 android 盒子上崩溃。当调用的歌曲有一个 PNG 文件作为 mp3 元数据专辑图像时,它会崩溃。我不知道这是否是 PNG 格式的问题,或者对于这个 Android 设备来说尺寸是否太大。jpg 格式的 mp3 专辑封面平均为 70kb,但这些 PNG 文件中的大多数约为 500kb。这可能是压倒内存还是什么???这就是模拟器或我的新手机不会崩溃的原因吗?

调试显示此错误: D/MainActivity: media start D/MainActivity: just loaded: /storage/emulated/0/Music D/MainActivity: path :/storage/emulated/0/Music D/MainActivity: proper: 3, other: 0; 3 D/MainActivity: player, permissions: true D/MediaPlayer: setSubtitleAnchor in MediaPlayer D/MainActivity: AUDIOFOCUS_REQUEST_GRANTED D/MainActivity: onCreate: ends E/AndroidRuntime: FATAL EXCEPTION: Thread-3 Process: com.mk.music, PID: 7511 java.lang.RuntimeException: setDataSource failed: status = 0xFFFFFFED at android.media.MediaMetadataRetriever.setDataSource(Native Method) at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:69) at com.mk.music.entity.Track.<init>(Track.java:35) at com.mk.music.MainActivity$4.run(MainActivity.java:236) at java.lang.Thread.run(Thread.java:761)

Track.java:35 就是这个命令,

        34     public Track(File file, MediaMetadataRetriever mmr) {
        35     mmr.setDataSource(file.getAbsolutePath());

MainActivity.java:236 是这个,

            233     Thread t = new Thread(new Runnable() {
            234     public void run() {
            236             for(File file : properFiles) {
            237                 Track tempTrack = new Track(file, mmr);
            238                 allTracks.add(tempTrack);
            239                 playList.add(allTracks.indexOf(tempTrack));
                    }

标签: androidandroid-studioexception

解决方案


推荐阅读