Bocsánat, kicsit hektikus ez a hét, részben azért, mert két hete tart (végigdolgoztam a hétvégét is).
Szóval, elöljáróban: a helloworldös cucc nem generált R.java / R.class fájlt. Nem tudom, miért.
Most nézem a Gradle nélküli repót.
Update:
Nem sikerült lebuildelni, és ennyire már nem értek a C fejlesztéshez, hogy értsem, mi fáj neki ennyire.
Ami változott a repóban, mert enélkül nem indultunk el:
diff --git a/android-project/jni/Application.mk b/android-project/jni/Application.mk
index e5b5079..e254413 100644
--- a/android-project/jni/Application.mk
+++ b/android-project/jni/Application.mk
@@ -3,4 +3,4 @@
# See CPLUSPLUS-SUPPORT.html in the NDK documentation for more information
# APP_STL := stlport_static
-APP_ABI := armeabi armeabi-v7a x86
+APP_ABI := arm64-v8a
diff --git a/android-project/project.properties b/android-project/project.properties
index 0840b4a..ea365c1 100644
--- a/android-project/project.properties
+++ b/android-project/project.properties
@@ -11,4 +11,4 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
-target=android-15
+target=android-35
A hibaüzenet, amit kaptam:
/opt/android-sdk/ndk/28.2.13676358/ndk-build (ruby-3.3.4)
Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-35.
Android NDK: WARNING: APP_PLATFORM android-35 is higher than android:minSdkVersion 10 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-35. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_problems.md for more information.
[arm64-v8a] Compile : SDL2 <= SDL_assert.c
[arm64-v8a] Compile : SDL2 <= SDL.c
[arm64-v8a] Compile : SDL2 <= SDL_error.c
[arm64-v8a] Compile : SDL2 <= SDL_hints.c
[arm64-v8a] Compile : SDL2 <= SDL_log.c
[arm64-v8a] Compile : SDL2 <= SDL_audio.c
[arm64-v8a] Compile : SDL2 <= SDL_audiocvt.c
[arm64-v8a] Compile : SDL2 <= SDL_audiodev.c
[arm64-v8a] Compile : SDL2 <= SDL_audiotypecvt.c
[arm64-v8a] Compile : SDL2 <= SDL_mixer.c
[arm64-v8a] Compile : SDL2 <= SDL_wave.c
[arm64-v8a] Compile : SDL2 <= SDL_androidaudio.c
[arm64-v8a] Compile : SDL2 <= SDL_dummyaudio.c
[arm64-v8a] Compile : SDL2 <= SDL_atomic.c
[arm64-v8a] Compile : SDL2 <= SDL_spinlock.c
[arm64-v8a] Compile : SDL2 <= SDL_android.c
[arm64-v8a] Compile : SDL2 <= SDL_cpuinfo.c
[arm64-v8a] Compile : SDL2 <= SDL_dynapi.c
[arm64-v8a] Compile : SDL2 <= SDL_clipboardevents.c
[arm64-v8a] Compile : SDL2 <= SDL_dropevents.c
[arm64-v8a] Compile : SDL2 <= SDL_events.c
[arm64-v8a] Compile : SDL2 <= SDL_gesture.c
[arm64-v8a] Compile : SDL2 <= SDL_keyboard.c
[arm64-v8a] Compile : SDL2 <= SDL_mouse.c
[arm64-v8a] Compile : SDL2 <= SDL_quit.c
[arm64-v8a] Compile : SDL2 <= SDL_touch.c
[arm64-v8a] Compile : SDL2 <= SDL_windowevents.c
[arm64-v8a] Compile : SDL2 <= SDL_rwops.c
[arm64-v8a] Compile : SDL2 <= SDL_haptic.c
[arm64-v8a] Compile : SDL2 <= SDL_syshaptic.c
[arm64-v8a] Compile : SDL2 <= SDL_gamecontroller.c
[arm64-v8a] Compile : SDL2 <= SDL_joystick.c
[arm64-v8a] Compile : SDL2 <= SDL_sysjoystick.c
[arm64-v8a] Compile : SDL2 <= SDL_sysloadso.c
[arm64-v8a] Compile : SDL2 <= SDL_power.c
[arm64-v8a] Compile : SDL2 <= SDL_syspower.c
[arm64-v8a] Compile : SDL2 <= SDL_sysfilesystem.c
[arm64-v8a] Compile : SDL2 <= SDL_d3dmath.c
[arm64-v8a] Compile : SDL2 <= SDL_render.c
[arm64-v8a] Compile : SDL2 <= SDL_yuv_mmx.c
[arm64-v8a] Compile : SDL2 <= SDL_yuv_sw.c
[arm64-v8a] Compile : SDL2 <= SDL_render_d3d11.c
[arm64-v8a] Compile : SDL2 <= SDL_render_d3d.c
[arm64-v8a] Compile : SDL2 <= SDL_render_gles2.c
In file included from jni/SDL/src/render/opengles2/SDL_render_gles2.c:277:
jni/SDL/src/render/opengles2/SDL_gles2funcs.h:56:1: error: incompatible function pointer types assigning to 'void (*)(GLuint, GLsizei, const char **, const GLint *)' (aka 'void (*)(unsigned int, int, const char **, const int *)') from 'void (GLuint, GLsizei, const GLchar *const *, const GLint *)' (aka 'void (unsigned int, int, const char *const *, const int *)') [-Wincompatible-function-pointer-types]
56 | SDL_PROC(void, glShaderSource, (GLuint, GLsizei, const char **, const GLint *))
| ^ ~~~~~~~~~~~~~~
jni/SDL/src/render/opengles2/SDL_render_gles2.c:266:45: note: expanded from macro 'SDL_PROC'
266 | #define SDL_PROC(ret,func,params) data->func=func;
| ^~~~~
jni/SDL/src/render/opengles2/SDL_render_gles2.c:800:26: warning: address of array 'shader->instances' will always evaluate to 'true' [-Wpointer-bool-conversion]
800 | if (!shader->instances)
| ~~~~~~~~~^~~~~~~~~
1 warning and 1 error generated.
make: *** [/opt/android-sdk/ndk/28.2.13676358/build/core/build-binary.mk:420: obj/local/arm64-v8a/objs/SDL2/src/render/opengles2/SDL_render_gles2.o] Error 1
Verdikt: Az eredeti projektnek a project.settings alapján Android 15 volt a target platformja, és ARMv7. Nagyon is elképzelhetőnek tartom, hogy a projekt inkompatibilis az újabb Android verziókkal, a nálam összerakott NDK-SDK verziópárooskban viszont nem volt _ennyire_ régi Android. Mivel helyszűkében vagyok diskben (nekem meg ez a korlátom), nem tudok ennyi NDK/SDK/Google API/Emulator verziót feltelepíteni, és most nem tudok disket bővíteni. Emiatt ezt a feltételezést nem tudom igazolni.
Viszont! Az Android 15 fordítás biztos, hogy kevesebb memóriát evett, mert kb az volt az utolsó platform, amivel még foglalkoztam forrásból forgatás címszó alatt, és akkor még egy bádogdoboz volt a gépem a mostanihoz képest (asszem up to 16G RAM-om volt). Azt elvileg te is meg tudod buildelni ARMv7-re. Azt megpróbálhatnád még (és az APP_EABI-ben is csak 1 darab ABI-t hagyj).