Skip to content

Draft: src: android: split jni_OnLoad/OnUnload from the core

Create a separate shared object (libvlc_android.so) to provide the javaVM support in VLC core and libvlc. The application is responsible from loading the shared object and it will provide the JavaVM for the different clients needing it.

The core now optionnally (with runtime detection) depends on the JVM availability instead of needing it unconditionnally, which also expand the usage of the core on Android.

In a static build like currently for the libvlcjni releases, the library will be built as a static archive too, and the two symbols will be integrated into the final shared object, leading to no specific changes for clients except the addition of the library in the final object being linked. The HAVE_DYNAMIC_PLUGINS flag is used to replace the dynamic linking in this case.

See also !300.

Draft since the changes are not tested on static build yet and there are still some work to do (system_Unconfigure part of the change from jni_OnUnload).

Merge request reports