Skip to content

Godot missing .so files in APK file using GDExtension #82727

Closed
@fatduckling

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

Minimal reproduction project

game.zip

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions