fredrikburmester / streamyfin

A Jellyfin client build with Expo
Mozilla Public License 2.0
1.13k stars 33 forks source link

Force close on GrapheneOS #40

Open privacyadmin opened 3 months ago

privacyadmin commented 3 months ago

Hi,

Intried' downloading and installing using GitHub and Obtainium and both of them forced closes.

It seems that it is trying to load up Google GMS and Framework which are not present on my phone as it is degoogled.

Is this correct? If so, possible to make it not reliant on them (I assume it is for Chromecast functionality)

type: crash
osVersion: google/husky/husky:14/AP2A.240805.005/2024080600:user/release-keys
package: com.fredrikburmester.streamyfin:13
process: com.fredrikburmester.streamyfin
processUptime: 129 + 196 ms
installer: com.android.packageinstaller

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fredrikburmester.streamyfin/com.fredrikburmester.streamyfin.MainActivity}: java.lang.RuntimeException: com.google.android.gms.cast.framework.ModuleUnavailableException: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module com.google.android.gms.cast.framework.dynamite found. Local version is 0 and remote version is 0.
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4004)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4184)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:114)
    at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:231)
    at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:152)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:93)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2602)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8623)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
    at com.android.internal.os.ExecInit.main(ExecInit.java:50)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:369)
Caused by: java.lang.RuntimeException: com.google.android.gms.cast.framework.ModuleUnavailableException: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module com.google.android.gms.cast.framework.dynamite found. Local version is 0 and remote version is 0.
    at com.google.android.gms.cast.framework.CastContext.getSharedInstance(com.google.android.gms:play-services-cast-framework@@21.4.0:11)
    at com.fredrikburmester.streamyfin.MainActivity.onCreate(MainActivity.kt:22)
    at android.app.Activity.performCreate(Activity.java:9013)
    at android.app.Activity.performCreate(Activity.java:8991)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1531)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3986)
    ... 15 more
Caused by: com.google.android.gms.cast.framework.ModuleUnavailableException: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module com.google.android.gms.cast.framework.dynamite found. Local version is 0 and remote version is 0.
    at com.google.android.gms.internal.cast.zzag.zzf(com.google.android.gms:play-services-cast-framework@@21.4.0:6)
    at com.google.android.gms.internal.cast.zzag.zza(com.google.android.gms:play-services-cast-framework@@21.4.0:1)
    at com.google.android.gms.cast.framework.CastContext.<init>(com.google.android.gms:play-services-cast-framework@@21.4.0:6)
    at com.google.android.gms.cast.framework.CastContext.getSharedInstance(com.google.android.gms:play-services-cast-framework@@21.4.0:10)
    ... 20 more
Caused by: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module com.google.android.gms.cast.framework.dynamite found. Local version is 0 and remote version is 0.
    at com.google.android.gms.dynamite.DynamiteModule.load(com.google.android.gms:play-services-basement@@18.3.0:69)
    at com.google.android.gms.internal.cast.zzag.zzf(com.google.android.gms:play-services-cast-framework@@21.4.0:2)
    ... 23 more
s4msy commented 3 months ago

Can confirm, not on grapheneOS but on lineageOS without Google or microG.

I understand the Chromecast functionality, but maybe make it optional?

Joshndroid commented 3 months ago

Just as a point of reference (as I'm on same os) I am running graphene os but do run sandboxed play store and the app functions as expected

fredrikburmester commented 3 months ago

This is related to #41 and I'll look into if it's possible to disable the google stuff or if i need to build and maintain a completely separate version of the app.

Psyquoquack commented 2 months ago

Maybe stupid suggestion but: Can't you just add a check at the start? Or temporarily ask at first launch? @fredrikburmester

fredrikburmester commented 2 months ago

@Psyquoquack I don't actually know... It might be harder than a runtime check since Chromecast requires native modules. I would have to experiment, but i don't have a degoogled phone.

Psyquoquack commented 2 months ago

I don't known either but you could be inspired by other Chromecast enabled open source projects and see how the managed the problem. Not very familiar with android development, but emulation is maybe a solution ? In last ressort, I can try to maintain a branch or fork without this Chromecast option. Thx for the project, my friends love it !@fredrikburmester