Godot missing .so files in APK file using GDExtension #82727
Description
Godot version
v4.1.1.stable.official [bd6af8e]
System information
Debian GNU/Linux 11 (bullseye) 64 bit
Issue description
Hi,
This seems to be related to #73334
Basically when I export a project with multiple architectures in Android, only the first architecture listed in the .gdextension
file is copied.
In my game.gdextension
file, I have:
[configuration]
entry_symbol = "example_library_init"
compatibility_minimum = 4.1
[libraries]
linux.x86_64 = "res://libgdexample.so"
android.armeabi-v7a = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.arm32 = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.x86 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_32 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_64 = "res://libgdexample.android.template_release.x86_64.so"
android.arm64-v8a = "res://libgdexample.android.template_release.arm64-v8a.so"
android.arm64 = "res://libgdexample.android.template_release.arm64-v8a.so"
After I export the project with Gradle, I see this in the logs:
Copying .so file from res://libgdexample.android.template_release.armeabi-v7a.so to res://android/build/libs/release/armeabi-v7a/libgdexample.android.template_release.armeabi-v7a.so
Copying .so file from res://libgdexample.android.template_release.armeabi-v7a.so to res://android/build/libs/release/armeabi-v7a/libgdexample.android.template_release.armeabi-v7a.so
Copying .so file from res://libgdexample.android.template_release.armeabi-v7a.so to res://android/build/libs/release/armeabi-v7a/libgdexample.android.template_release.armeabi-v7a.so
Copying .so file from res://libgdexample.android.template_release.armeabi-v7a.so to res://android/build/libs/release/armeabi-v7a/libgdexample.android.template_release.armeabi-v7a.so
It seems to only copy the .so file for the armeabi arch. The other architectures are missing.
Steps to reproduce
I attached a minimum reproducible project.
But basically, I just compiled the example project provided in the godot-cpp library https://github.com/godotengine/godot-cpp/tree/master/test/src
Then I created the .gdextension
file as shown in the issue description.
After, I created Android export config, selecting all architectures.
I ran the export command via CLI:
GODOT_ANDROID_KEYSTORE_RELEASE_PATH=/home/saleem/CLionProjects/game/game/android/game.keystore GODOT_ANDROID_KEYSTORE_RELEASE_USER=game GODOT_ANDROID_KEYSTORE_RELEASE_PASSWORD=password /home/saleem/software/godot/godot --headless --verbose --path /tmp/new --export-release Android /tmp/new/Tmp.apk
Here is the output:
godot.log
Activity