Код: Выделить всё
# Shared libs are on
if(ANDROID)
add_library(main SHARED "src/potok/main.c")
target_link_libraries(main log SDL3::SDL3)
endif()
< /code>
// main.c
// main.c
#define SDL_MAIN_USE_CALLBACKS
#include
#include
...
// SDL_AppInit, SDL_AppIterate, SDL_AppEvent, SDL_AppQuit implemented
// Using SDL_Renderer to clear screen with random color when screen is pressed
// Works on desktop
Я использую предоставленную SDL Android-template, но с моими собственными родными Libs. Макет клавиши: < /p>
Код: Выделить всё
📦android-tmp
┣ 📂build/apk/lib/arm64-v8a/
┃ ┣ 📜libmain.so # Not sure how main interacts with SDL3 as they are dynamically linked
┃ ┗ 📜libSDL3.so
┣ 📂java/org/libsdl/app/
┃ ┣ 📜SDLActivity.java
┃ ┗ ...
┣ 📜AndroidManifest.xml (just added missing package name: org.libsdl.app)
# Helper stuff
┣ 📜android.jar
┣ 📜keystore.jks
< /code>
Нет изменений в коде Java; Я только добавил атрибут пакета Код: Выделить всё
# 1. AAPT: Generate Java bindings
aapt package -f -m -J build/gen -S res -M AndroidManifest.xml -I android.jar
# 2. Compile Java (Java 17 here)
javac --release 17 -classpath android.jar -d build/obj build/gen/org/libsdl/app/*.java java/org/libsdl/app/*.java
# 3. D8 -> classes.jar
d8 build/obj/org/libsdl/app/*.class --output build/apk/classes.jar --no-desugaring --min-api 34
# 4. Final dex
d8 android.jar classes.jar --output build/apk/
# 5. AAPT: Package APK
aapt package -f -M AndroidManifest.xml -S res -I android.jar -F build/app.unsigned.apk build/apk/
# 6. Align & sign
zipalign -f -p 4 build/app.unsigned.apk build/app.aligned.apk
apksigner sign --ks keystore.jks --ks-key-alias androidkey \
--ks-pass pass:android --key-pass pass:android \
--out build/app.apk build/app.aligned.apk
# 7. Install
adb install -r build/app.apk
Приложение устанавливает, но не будет запускаться вообще , а logcat не показывает конкретных ошибок . Я подозреваю, что что -то может быть не так с контекстом, который может быть установлен по -другому сценариями SDL3.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... wont-start
Мобильная версия