libre-tube / LibreTube

An alternative frontend for YouTube, for Android.
https://libretube.dev
GNU General Public License v3.0
8.78k stars 446 forks source link

Libretube is crashing #1833

Closed GET100PERCENT closed 2 years ago

GET100PERCENT commented 2 years ago

Steps to reproduce

After installing the 7.1 version, it can't be opened.

Expected behavior

It should open as usual.

Actual behavior

The app crashes saying libretube keeps stopping.

LibreTube version

7.1

Android version

Android 7.1 Nougat

Other details

Screenshot_20221113-180246

https://user-images.githubusercontent.com/116144024/201521914-34acf187-28b4-4422-a776-462601d91963.mp4

Acknowledgements

Bnyro commented 2 years ago

Could you please provide debug logs or try to delete the app's data?

GET100PERCENT commented 2 years ago

I uninstalled the application and then reinstalled. I also installed the universal cpu architecture version of libretube. But the same crash results every time.

GET100PERCENT commented 2 years ago

And my phone's cpu architecture is armeabi v7a.

GET100PERCENT commented 2 years ago

As two of my requested features are implemented in this version and also i translated it to Odia, I am very interested to use the new version, but it crashes every time, even I can't open the app.

Bnyro commented 2 years ago

The architecture should be irrelevant! There's nothing I could do without debug logs (you can get them with Scoop from F-Droid if your phone is rooted). Otherwise you can only try clearing the app data and rebooting your phone.

senhor-R commented 2 years ago

https://user-images.githubusercontent.com/34902724/201552891-427cca65-423e-4ec7-aaf6-91f8f811d3b9.mp4

Android 7.1 crashing Lineage OS

trizen commented 2 years ago

Debug logs:

FATAL EXCEPTION: main
Process: com.github.libretube, PID: 17850
java.lang.NoSuchMethodError: No virtual method getParameterCount()I in class Ljava/lang/reflect/Method; or its super classes (declaration of 'java.lang.reflect.Method' appears in /system/framework/core-oj.jar)
    at com.fasterxml.jackson.databind.introspect.AnnotatedCreatorCollector$$ExternalSyntheticApiModelOutline0.m(R8$$SyntheticClass)
    at com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector._isIncludableMemberMethod(AnnotatedMethodCollector.java:25)
    at com.fasterxml.jackson.databind.introspect.AnnotatedMethodCollector._addMemberMethods(AnnotatedMethodCollector.java:19)
    at com.fasterxml.jackson.databind.introspect.AnnotatedClass._methods(AnnotatedClass.java:42)
    at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:331)
    at com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:11)
    at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:33)
    at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:134)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:2251)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:747)
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:2)
    at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:66)
    at com.fasterxml.jackson.databind.DeserializationContext.findContextualValueDeserializer(DeserializationContext.java:5)
    at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.createContextual(CollectionDeserializer.java:132)
    at com.fasterxml.jackson.databind.DeserializationContext.handleSecondaryContextualization(DeserializationContext.java:16)
    at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:10)
    at com.fasterxml.jackson.databind.ObjectReader.<init>(ObjectReader.java:65)
    at retrofit2.converter.jackson.JacksonConverterFactory.responseBodyConverter(JacksonConverterFactory.java:15)
    at retrofit2.Retrofit.responseBodyConverter(Retrofit.java:37)
    at retrofit2.ServiceMethod.parseAnnotations(ServiceMethod.java:413)
    at retrofit2.Retrofit.loadServiceMethod(Retrofit.java:25)
    at retrofit2.Retrofit$1.invoke(Retrofit.java:47)
    at java.lang.reflect.Proxy.invoke(Proxy.java:813)
    at $Proxy1.getTrending(Unknown Source)
    at com.github.libretube.ui.fragments.HomeFragment$fetchTrending$1.invokeSuspend(HomeFragment.kt:59)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:107)
    at kotlinx.coroutines.EventLoop.processUnconfinedEvent(EventLoop.common.kt:37)
    at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:185)
    at kotlinx.coroutines.AbstractCoroutine.start$enumunboxing$(AbstractCoroutine.kt:91)
    at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source)
    at androidx.lifecycle.LifecycleCoroutineScope.launchWhenCreated(Lifecycle.kt:8)
    at com.github.libretube.ui.fragments.HomeFragment.onViewCreated(HomeFragment.kt:58)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:305)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:154)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:58)
    at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:34)
    at androidx.fragment.app.FragmentStateManager.ensureInflatedView(FragmentStateManager.java:105)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:151)
    at androidx.fragment.app.FragmentLayoutInflaterFactory.onCreateView(FragmentLayoutInflaterFactory.java:58)
    at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:5)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
    at com.github.libretube.ui.activities.MainActivity.onCreate(MainActivity.kt:80)
    at android.app.Activity.performCreate(Activity.java:6692)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1140)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2709)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2825)
    at android.app.ActivityThread.-wrap12(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
    at android.os.Handler.dispatchMessage(Handler.java:110)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6339)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1084)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:945)
    Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@fd4f107, Dispatchers.Main.immediate]
Bnyro commented 2 years ago

I assume the latest debug version crashes as well? Could anyone please test https://github.com/libre-tube/LibreTube/actions/runs/3401371226 ? I suspect it to be caused by bumping the Jackson annotations dependency, that build is before it got bumped!

trizen commented 2 years ago

Could anyone please test https://github.com/libre-tube/LibreTube/actions/runs/3401371226 ?

It works correctly on Android 7.1.1 (armeabi-v7a).

GET100PERCENT commented 2 years ago

How to download it's armaebi v7a release?

trizen commented 2 years ago

@GET100PERCENT download the "app.zip" file. It contains .apk packages for all supported architectures. ss

GET100PERCENT commented 2 years ago

Okay

Bnyro commented 2 years ago

It works correctly on Android 7.1.1 (armeabi-v7a).

Awesome, what about https://github.com/libre-tube/LibreTube/actions/runs/3462735456 ?

GET100PERCENT commented 2 years ago

When will it's stable release come?

trizen commented 2 years ago

It works correctly on Android 7.1.1 (armeabi-v7a).

Awesome, what about https://github.com/libre-tube/LibreTube/actions/runs/3462735456 ?

It works. Thanks for the quick fix!

Bnyro commented 2 years ago

It works. Thanks for the quick fix!

Great, thank you for testing it! I'm not planning to create a new release in the near future as the current one is only some days ago, I recommend everyone who is affected to either use a recent debug build for now or downgrade to version 0.7.0. I know it's not the best solution, but that's all I can offer at the moment. Thanks for understanding :)

GET100PERCENT commented 2 years ago

When trying to download a video i got some errors. java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1453) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1565) ... 1 more Caused by: java.io.IOException: No such file or directory at java.io.UnixFileSystem.createFileExclusively0(Native Method) at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:280) at java.io.File.createNewFile(File.java:948) at com.github.libretube.util.MetadataHelper.createMetadata(MetadataHelper.kt:18) at com.github.libretube.ui.dialogs.DownloadDialog.initDownloadOptions$lambda$3(DownloadDialog.kt:140) at com.github.libretube.ui.dialogs.DownloadDialog.$r8$lambda$eXU-LKvfeoTZLD5mfXlFSFqngf4(DownloadDialog.kt) at com.github.libretube.ui.dialogs.DownloadDialog$$ExternalSyntheticLambda2.onClick(R8$$SyntheticClass) at android.view.View.performClick(View.java:6319) at android.widget.TextView.performClick(TextView.java:11202) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1219) at android.view.View$PerformClick.run(View.java:23995) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6816) ... 3 more

opk12 commented 2 years ago

Great, thank you for testing it! I'm not planning to create a new release in the near future as the current one is only some days ago, I recommend everyone who is affected to either use a recent debug build for now or downgrade to version 0.7.0. I know it's not the best solution, but that's all I can offer at the moment. Thanks for understanding :)

For F-droid, could you make a git tag, so F-droid will auto-detect it and make a new apk? The alternative is to uninstall and reinstall twice (now, and again when the new release comes out), because non-rooted Android prohibits downgrading, and because the apk from F-droid is signed (so cannot be upgraded to GitHub or Google Play).

For clarity, I'm not asking for a full release, just a git tag, to trigger the F-droid build.

Bnyro commented 2 years ago

For F-droid, could you make a git tag, so F-droid will auto-detect it and make a new apk? The alternative is to uninstall and reinstall twice (now, and again when the new release comes out), because non-rooted Android prohibits downgrading, and because the apk from F-droid is signed (so cannot be upgraded to GitHub or Google Play).

For clarity, I'm not asking for a full release, just a git tag, to trigger the F-droid build.

There's most likely going to be a new release soon so I don't think it makes sense to do something like that now, the F-Droid build would probably arrive later than the next release on GitHub...