Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable C++11 for Android Studio?

I'm using Android studio 1.3.2+ndk-r11b-windows-x86_64 and try to build project with native code and C++11 features (share_ptr, weak_ptr and etc.) but got some errors. For example:

Error:(22, 6) error: 'shared_ptr' in namespace 'std' does not name a template type

The issue is: how to use C++11 with Android Studio+NDK?

p.s. I added flag cppFlags.add ("-std=c++11") into "build.gradle"

 android.ndk {
        moduleName = "game"
        cppFlags.addAll(["-I${file("src/main/jni/native_app_glue")}".toString(),
                         "-I${file("src/main/jni")}".toString(),
                         "-I${file("src/main/jni/data")}".toString()])
        cppFlags.add ("-std=c++11")
        ldLibs.addAll(["android", "EGL", "GLESv2", "OpenSLES", "log"])
        stl        = "stlport_static"
}

but it's seems didn't work.

like image 644
angevad Avatar asked Apr 16 '16 17:04

angevad


People also ask

Can I use C in Android Studio?

The Android Native Development Kit (NDK): a toolset that allows you to use C and C++ code with Android, and provides platform libraries that allow you to manage native activities and access physical device components, such as sensors and touch input.

What C++ compiler does Android studio use?

Using Android Studio 2.2 and higher, you can use the NDK to compile C and C++ code into a native library and package it into your APK using Gradle, the IDE's integrated build system.

Where is Android NDK installed?

Android Studio installs all versions of the NDK in the android-sdk /ndk/ directory. Each version is located in a subdirectory with the version number as its name.


1 Answers

On build.gradle file of the App I go to android -> defaultConfig -> externalNativeBuild -> cmake and I edit the cppFlags parameter from this

cppFlags ""

to this

cppFlags "-std=c++11"
like image 144
Francesco Avatar answered Oct 04 '22 16:10

Francesco