Skip to content

Crashes when on Android launchers #600

@alexytomi

Description

@alexytomi

Because of how all MCJE on Android launchers work, we have to use -Dos.name=Linux to properly run most things. This means SDL2 thinks we are on a traditional glibc-based distro and loads the natives for that, the problem is, Android doesn't have glibc.

We currently have to race the mod to delete the extracted native before the mod dlopen's the extracted invalid native library so it properly falls back to java.library.path else it UnsatisfiedLinkError's due to loading the invalid native library in a invalid location (we can't dlopen things outside jars, even if we could, this one would fail). Racing the mod..isn't very reliable.

This could be fixed by having an additional if in SdlNativeLibraryLoader.loadSDL2NativeFromEmbeddedResources(), checking if /vendor/lib/libandroid.so exists, then just not adding the libraryPath to the search path if it does.

Providing the native for android is sadly out of the question due to how android works.

However I did see a mention of PojavLauncher not being supported, this applies to pretty much all of MCJE on Android launchers and not just PojavLauncher but it is understandable if it's not supported. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions