You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NewPipeExtractor нужно обновить, т.к. в версии 0.20.2 давно поломался ютюб и немного PeerTube
Проблема в том, что при обновлении до следующей версии (например, 0.21.9), она перестаёт работать на старом планшете Самсунг с 4-м андроидом: всё компилируется, но при попытке открыть плейлист PeerTube вылетает эксепшен
2021-08-27 00:59:46.164 14410-14443/su.sadrobot.yashlang W/art: Unresolved exception class when finding catch block: java.time.format.DateTimeParseException
2021-08-27 00:59:46.167 14410-14443/su.sadrobot.yashlang E/AndroidRuntime: FATAL EXCEPTION: arch_disk_io_1
Process: su.sadrobot.yashlang, PID: 14410
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/Instant;
at org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.parseDateFrom(PeertubeParsingHelper.java:38)
at org.schabi.newpipe.extractor.services.peertube.extractors.PeertubeStreamInfoItemExtractor.getUploadDate(PeertubeStreamInfoItemExtractor.java:80)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.extract(StreamInfoItemsCollector.java:75)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:106)
at org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector.commit(StreamInfoItemsCollector.java:33)
at org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.collectStreamsFrom(PeertubeParsingHelper.java:102)
at org.schabi.newpipe.extractor.services.peertube.PeertubeParsingHelper.collectStreamsFrom(PeertubeParsingHelper.java:67)
at org.schabi.newpipe.extractor.services.peertube.extractors.PeertubeAccountExtractor.getPage(PeertubeAccountExtractor.java:147)
at org.schabi.newpipe.extractor.services.peertube.extractors.PeertubeAccountExtractor.getInitialPage(PeertubeAccountExtractor.java:120)
at su.sadrobot.yashlang.view.VideoItemOnlyNewOnlineDataSource.loadInitial(VideoItemOnlyNewOnlineDataSource.java:87)
at androidx.paging.ItemKeyedDataSource.dispatchLoadInitial(ItemKeyedDataSource.java:254)
at androidx.paging.ContiguousPagedList.<init>(ContiguousPagedList.java:175)
at androidx.paging.PagedList.create(PagedList.java:216)
at androidx.paging.PagedList$Builder.build(PagedList.java:388)
at androidx.paging.LivePagedListBuilder$1.compute(LivePagedListBuilder.java:206)
at androidx.paging.LivePagedListBuilder$1.compute(LivePagedListBuilder.java:171)
at androidx.lifecycle.ComputableLiveData$2.run(ComputableLiveData.java:101)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:762)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.time.Instant" on path: DexPathList[[zip file "/data/app/su.sadrobot.yashlang-1/base.apk"],nativeLibraryDirectories=[/data/app/su.sadrobot.yashlang-1/lib/arm, /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)
Т.е. чтобы обновить NewPipeExtractor, нужно или дропнуть поддержку всех андроидов младше 8.0 (в т.ч. мой планшет), или каким-то образом обойти эти историю.
Нужно обновить плагин gradle (попробую обновить сразу всю студию) и добавить настройки как написано в app.gradle там. (попробовал добавить настройки в старой студии 2019 - не прокатило, пишет ошибки).
The text was updated successfully, but these errors were encountered:
Просто обновить студию не достаточно (или не нужно), нужно было указать новый грейдл в настройках проекта - он сам после этого выкачивает и подключает нужную версию, как с остальными модулями.
смысл эксепшена:
https://stackoverflow.com/questions/49851379/java-lang-noclassdeffounderror-failed-resolution-of-ljava-time-instant
API level 26 - это Android 8.0
https://developer.android.com/about/versions/oreo/android-8.0
У меня в настройках сейчас стоит:
Т.е. чтобы обновить NewPipeExtractor, нужно или дропнуть поддержку всех андроидов младше 8.0 (в т.ч. мой планшет), или каким-то образом обойти эти историю.
у TeamNewPipe есть проект NewPipe-legacy https://github.com/TeamNewPipe/NewPipe-legacy , который запускается на старых андроидах, в т.ч. 4-й ветки.
А на странице NewPipeExtractor есть прямая инструкция
https://github.com/TeamNewPipe/NewPipeExtractor
что за API desugaring написано по ссылке:
Java 8+ API desugaring support (Android Gradle Plugin 4.0.0+)
https://developer.android.com/studio/write/java8-support#library-desugaring
там как раз упоминается
Нужно обновить плагин gradle (попробую обновить сразу всю студию) и добавить настройки как написано в app.gradle там. (попробовал добавить настройки в старой студии 2019 - не прокатило, пишет ошибки).
The text was updated successfully, but these errors were encountered: