Android NDK APP_STL gnustl_shared is no longer supported

26,950
  1. switch APP_STL := gnustl_static to either c++_static or c++_shared in file Application.mk

APP_STL := c++_static

  1. The Android OS switched to clang several years ago. Future versions of the NDK will remove GCC, so the sooner you start testing your project with clang the better!
  1. For ndk-build, remove lines setting NDK_TOOLCHAIN or NDK_TOOLCHAIN_VERSION.

  2. For cmake, remove lines setting ANDROID_TOOLCHAIN.

  3. For standalone toolchains, use the clang/clang++ binaries instead of gcc/g++.

  4. For other build systems, ask the owners of that build system.


see more details:

https://developer.android.com/ndk/guides/cpp-support

https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md#how-to-fix-common-problems

Share:
26,950
Ha Noi Chieu Mua
Author by

Ha Noi Chieu Mua

Updated on October 17, 2020

Comments

  • Ha Noi Chieu Mua
    Ha Noi Chieu Mua over 3 years

    I am buiding an android NDK project with Android Studio 3.3 Canady 11, when build project, I got this error:

    Build command failed. Error while executing process /home/ndqa/opt/Android-SDK/ndk-bundle/ndk-build with argument {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/Android.mk NDK_APPLICATION_MK=/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=/home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib APP_PLATFORM=android-21 -j10 APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}

    /home/ndqa/opt/Android-SDK/ndk-bundle/build/core/add-application.mk:178: *** Android NDK: APP_STL gnustl_shared is no longer supported. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information. . Stop.

    My machine is Ubuntu 18 and it has android SDK, NDK full. Plsease help me fix this issue. Thank all!

    Update If I replaced gnustl_shared with either c++_static or c++_shared, it shows more error:

    Build command failed.
    Error while executing process /home/ndqa/opt/Android-SDK/ndk-bundle/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/Android.mk NDK_APPLICATION_MK=/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-23 NDK_OUT=/home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=/home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib APP_PLATFORM=android-21 -j10 APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
    /home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1
    rm -f /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/*
    rm -f /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdbserver
    rm -f /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup
    mkdir -p /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a
    echo [armeabi-v7a] "Gdbserver      ": "[arm-linux-androideabi] /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdbserver"
    install -p /home/ndqa/opt/Android-SDK/ndk-bundle/prebuilt/android-arm/gdbserver/gdbserver /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdbserver
    echo [armeabi-v7a] "Gdbsetup       ": "/home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup"
    echo "set solib-search-path /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a" > /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup
    echo "directory /home/ndqa/opt/Android-SDK/ndk-bundle/sysroot /home/ndqa/opt/Android-SDK/ndk-bundle/sources/android/support /home/ndqa/opt/Android-SDK/ndk-bundle/sources/cxx-stl/llvm-libc++ /home/ndqa/opt/Android-SDK/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include /home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1/src/ /home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/include /home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1/android/include /home/ndqa/opt/Android-SDK/ndk-bundle/sources/cxx-stl/llvm-libc++/include" >> /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup
    mkdir -p /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/main
    echo [armeabi-v7a] "Compile++ arm  ": "main <= AndroidJni.cpp"
    /home/ndqa/opt/Android-SDK/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -MMD -MP -MF /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/main/AndroidJni.o.d -target armv7-none-linux-androideabi21 -ffunction-sections -fdata-sections -funwind-tables -no-canonical-prefixes  -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument  -fno-exceptions -fno-rtti -gcc-toolchain /home/ndqa/opt/Android-SDK/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16  -marm -O0 -UNDEBUG -fno-limit-debug-info  -I/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1/src/ -I/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/include -I/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1/android/include -I/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/protobuf-3.6.1/src -I/home/ndqa/opt/Android-SDK/ndk-bundle/sources/cxx-stl/llvm-libc++/include -I/home/ndqa/opt/Android-SDK/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include -I/home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp -std=c++11    -DANDROID -D GOOGLE_PROTOBUF_NO_RTTI=1 -D GOOGLE_PROTOBUF_NO_RTTI=1 -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -std=c++11 -std=c++11 -std=gnu++11  --sysroot /home/ndqa/opt/Android-SDK/ndk-bundle/sysroot -isystem /home/ndqa/opt/Android-SDK/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -c  /home/ndqa/Documents/PROJ/code/MyProj/app/src/main/cpp/AndroidJni.cpp -o /home/ndqa/Documents/PROJ/code/MyProj/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/main/AndroidJni.o