Skip to content

Conversation

joliver82
Copy link
Contributor

After the conversation at https://hub.jmonkeyengine.org/t/android-16kb-page-size-support/48536 I've decided to create this PR for everyone using jme3 for android to avoid the 16kb page issues reported by bzbit

This PR includes the openalsoft update by @riccardobl and sets ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES for all android native libraries

This change also requires the docker image "jmonkeyengine/buildenv-jme3:android" to be rebuilt including at least ndk v29

@riccardobl
Copy link
Member

I think we can use this updated image

https://github.com/NostrGameEngine/ngengine/blob/2dd1a199b1d1c2084af8307b4dfc87888665e6f5/.github/workflows/main.yml#L12-L61

instead of jmonkeyengine/buildenv-jme3:android

@joliver82
Copy link
Contributor Author

joliver82 commented Sep 7, 2025

Thanks @riccardobl for the tip. The linked image properly passed the build android natives step but every other step is failing when trying to download the native artifact. Any help is appreciated

@riccardobl
Copy link
Member

looks like the 'Build natives for android' job is not uploading any artifact

Run actions/upload-artifact@master
/usr/bin/docker exec  541b0f8ee72bf3e0f18a5523b2b169a9b236da08060d39912073589c63bf2fb4 sh -c "cat /etc/*release | grep ^ID"
Warning: No files were found with the provided path: build/native. No artifacts will be uploaded.

maybe the path changed?

@joliver82
Copy link
Contributor Author

The issue was that the NDK path was not properly set and cmake was missing in the image. I didn't realized you already fixed it in ngengine workflow. Should now work. Thanks ;)

Copy link
Member

@riccardobl riccardobl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need these changes to build with static libc++.
Otherwise we'd need libc++_shared.so to be in the library path.

-DRESTRICT="" \
-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=true

LOCAL_LDLIBS := -lOpenSLES -llog -Wl,-s -lc++_shared
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
LOCAL_LDLIBS := -lOpenSLES -llog -Wl,-s -lc++_shared
LOCAL_LDLIBS := -lOpenSLES -llog -Wl,-s -lc++_static -lc++abi

'-DALSOFT_SHARED=OFF',
'-DBUILD_SHARED_LIBS=OFF',
'-DALSOFT_STATIC=ON',
'-DLIBTYPE=STATIC'
Copy link
Member

@riccardobl riccardobl Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'-DLIBTYPE=STATIC'
'-DLIBTYPE=STATIC',
'-DCMAKE_CXX_FLAGS=-stdlib=libc++'

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants