[AndroidNDK][Make] Path issue in Android.mk on ndk22,23

Viewed 75

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)
0 Answers
Related