У меня есть код, с помощью которого скачиваются песни. Вот он:
try (BufferedInputStream in = new BufferedInputStream(new URL(urlStr).openStream());
FileOutputStream fileOutputStream = new FileOutputStream(file)) {
byte dataBuffer[] = new byte[1024];
int bytesRead;
while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) {
fileOutputStream.write(dataBuffer, 0, bytesRead);
}
} catch (IOException e) {
// handle exception
}
Mp3File mp3file = null;
try {
mp3file = new Mp3File(file);
} catch (IOException e) {
e.printStackTrace();
} catch (UnsupportedTagException e) {
e.printStackTrace();
} catch (InvalidDataException e) {
e.printStackTrace();
}
if (mp3file.hasId3v1Tag()) {
mp3file.removeId3v1Tag();
}
if (mp3file.hasId3v2Tag()) {
mp3file.removeId3v2Tag();
}
if (mp3file.hasCustomTag()) {
mp3file.removeCustomTag();
}
ID3v2 id3v2Tag;
if (mp3file.hasId3v2Tag()) {
id3v2Tag = mp3file.getId3v2Tag();
} else {
// mp3 does not have an ID3v2 tag, let's create one..
id3v2Tag = new ID3v24Tag();
mp3file.setId3v2Tag(id3v2Tag);
}
id3v2Tag.setTrack("5");
id3v2Tag.setArtist(performer);
id3v2Tag.setTitle(title);
id3v2Tag.setAlbum("Lalala");
id3v2Tag.setYear("2001");
id3v2Tag.setGenre(12);
id3v2Tag.setArtistUrl(songImg.getText().toString());
try {
id3v2Tag.setAlbumImage(recoverImageFromUrl(songImg.getText().toString()),"");
} catch (Exception e) {
e.printStackTrace();
}
Так вот, на версии андорид 9 всё хорошо работает, а вот при тестировании на 6-ке вылетает такой Exception:
E/AndroidRuntime: FATAL EXCEPTION: Timer-2
Process: music.player.musicplayer.audio.media.fm.video.radio.video.songs.equalizer.apps.free.android.lalala.download.search, PID: 31039
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/nio/file/Paths;
at com.mpatric.mp3agic.FileWrapper.<init>(FileWrapper.java:21)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:57)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:45)
at musicplayer.audioplayer.equalizer.mp3player.widget.TopAdapter$TopViewHolder$4.run(TopAdapter.java:292)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.nio.file.Paths" on path: DexPathList[[zip file "/data/app/music.player.musicplayer.audio.media.fm.video.radio.video.songs.equalizer.apps.free.android.lalala.download.search-1/base.apk"],nativeLibraryDirectories=[/data/app/music.player.musicplayer.audio.media.fm.video.radio.video.songs.equalizer.apps.free.android.lalala.download.search-1/lib/x86, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.mpatric.mp3agic.FileWrapper.<init>(FileWrapper.java:21)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:57)
at com.mpatric.mp3agic.Mp3File.<init>(Mp3File.java:45)
at musicplayer.audioplayer.equalizer.mp3player.widget.TopAdapter$TopViewHolder$4.run(TopAdapter.java:292)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)