Good day!
I got a issue when using android.mk on ndk22+.
I tried to reproduce the issue in the demo https://github.com/android/ndk-samples/tree/main/other-builds/ndkbuild/hello-jni
By adding and relocating hello-jni.c to some location and as a result reaching a position long enough, the build will fail.
Let's say in some case my src path is really long, looking forward to everyone's help to find an explanation and workaround for this problem :) Thanks in advance!
Example:
...
LOCAL_PATH := $(call my-dir)
include $(LOCAL_PATH)/../../common.mk
JNI_SRC_PATH := $(SAMPLES_ROOT)/hello-jni/app/src/main/cpp
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := $(JNI_SRC_PATH)/vietanh11/vietanh12/vietanh13/hello-jni.c <- build ok
LOCAL_SRC_FILES := $(JNI_SRC_PATH)/vietanh11/vietanh12/vietanh13/vietanh14/hello-jni.c <- build failed
include $(BUILD_SHARED_LIBRARY)
Error:
C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni>gradlew assembleDebug
> Task :app:generateJsonModelDebug FAILED
"C:\DevTools\android-sdk\ndk\22.1.7171670\build\\..\prebuilt\windows-x86_64\bin\make.exe": Interrupt/Exception caught (code = 0xc0000005, addr = 0x00007ffb08f95f10)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:generateJsonModelDebug'.
> error when building with ndkBuild using C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\Android.mk: Build command failed.
Error while executing process C:\DevTools\android-sdk\ndk\22.1.7171670\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\Android.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=C:/Users/anh.nguyenviet6/Downloads/ndk-samples-main/other-builds/ndkbuild/hello-jni/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
md "C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib\armeabi-v7a" >NUL 2>NUL || rem
C:/DevTools/android-sdk/ndk/22.1.7171670/build//../prebuilt/windows-x86_64/bin/echo.exe [armeabi-v7a] "Gdbserver ": "[arm-linux-androideabi] C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdbserver"
copy /b/y "C:\DevTools\android-sdk\ndk\22.1.7171670\build\\..\prebuilt\android-arm\gdbserver\gdbserver" "C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib\armeabi-v7a\gdbserver" > NUL
C:/DevTools/android-sdk/ndk/22.1.7171670/build//../prebuilt/windows-x86_64/bin/echo.exe [armeabi-v7a] "Gdbsetup ": "C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup"
C:/DevTools/android-sdk/ndk/22.1.7171670/build//../prebuilt/windows-x86_64/bin/echo.exe "set solib-search-path C:/Users/anh.nguyenviet6/Downloads/ndk-samples-main/other-builds/ndkbuild/hello-jni/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a" > C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup
C:/DevTools/android-sdk/ndk/22.1.7171670/build//../prebuilt/windows-x86_64/bin/echo.exe "directory C:/DevTools/android-sdk/ndk/22.1.7171670/build//../toolchains/llvm/prebuilt/windows-x86_64/sysroot C:/Users/anh.nguyenviet6/Downloads/ndk-samples-main/other-builds/ndkbuild/hello-jni/app" >> C:\Users\anh.nguyenviet6\Downloads\ndk-samples-main\other-builds\ndkbuild\hello-jni\app\build\intermediates\ndkBuild\debug\lib/armeabi-v7a/gdb.setup
"C:\DevTools\android-sdk\ndk\22.1.7171670\build\\..\prebuilt\windows-x86_64\bin\make.exe": Interrupt/Exception caught (code = 0xc0000005, addr = 0x00007ffb08f95f10)