love2d / love-android

Android build setup for LÖVE.
https://love2d.org
Other
211 stars 73 forks source link

dlopen failed: library "libc++_shared.so" not found #207

Closed castelo3442 closed 3 years ago

castelo3442 commented 3 years ago

Hi. First, thank you all for keeping love-android working. Its an awesome tool. Up to August 5th, new compiles of my love2d game worked perfectly on my android device and on Android Studio emulators. But now it stops at the very beginning. The error message is "dlopen failed: library "libc++_shared.so" not found". It started when I updated my Android version to the latest release. To fix it, (no success) Ive uninstalled the Studio, then reinstall old versions and new Migrations, install a new love-android from scratch, recover old working .love files, using different APIs, SDK, Gradle and NDK versions, but nothing solves it. I noticed that now, in love Module of Android Studio, there is an org.libsdl.app, with the classes for SDLActivity. Not SDL2 anymore. I also tried other fixes like https://stackoverflow.com/questions/39620739/android-studio-cmake-shared-library-missing-libc-shared-so-can-cmake-bundle , but as long as I could understand and try to implement, they didn`t work. Anyone had the same issue?

Update: As a test, Ive taken out "c++_shared" from 'String[] getLibraries()' (line 74 of GameActivity). The error message changed to the next string, "mpg132" of the array. So the error doesnt seem to be related to libc++_shared.so itself, but somehow related to this array usage.

MikuAuahDark commented 3 years ago

I also tried other fixes like ... but as long as I could understand and try to implement, they didn't work.

Of course that linked problem won't work because currently LOVE Android uses legacy ndk-build-based build system, not CMake.

Please don't change the order of libraries loaded in getLibraries() unless you know what you're doing. The library list there is specifically ordered to prevent dlopen errors.

However, guessing by your error message, it looks like the native libraries doesn't get compiled. Please confirm that you have all the necessary native libraries by opening the APK as zip archive then inspecting the lib/arm64-v8a folder. It should contain these files. gambar If not, then double-check your NDK installation.