简体   繁体   中英

C/C++ with Android Studio version 2.2

With Android Studio 2.2, and the new C++ support they added; can I now write and compile inside android studio, or do I need to compile and import my libraries separately

Short answer: Yes, you can.

Here is what you can do 1
1) In Android Studio, right click on your module ==> New ==> Package
2) name the package (folder) cpp (or you can name it jni )
3) you will see the cpp directory on the left.
4) You can create .cpp , .h and other files within that folder.

图片#1

Nowm you have to tell gradle how to build that.
You need install CMake . 2
1) Go to Preferences ==> Android SDK ==> SDK Tools ==> CMake
2) Select that and click Apply and Ok

CMake安装

Now, you need to add a CMakeLists.txt file to your project.
Path: my_project/app/CMakeLists.txt

This is what the file should look like:

# https://developer.android.com/studio/projects/add-native-code.html#create-cmake-script


# Minimum version of CMake
cmake_minimum_required(VERSION 3.4.1)


# adding CEC library
# add_library structure:    add_library(lib_name  lib_type_STATIC_or_SHARED  source_file_path)
add_library(my_lib_name SHARED src/main/jni/my_cpp_file.cpp)


# include_directories is to provide the path to you native lib code
# include_directories structure:    include_directories(native_lib_folder_path)
include_directories(src/main/jni/)


# adding Android log library
# find_library is used to find NDK API libraries (built in NDK libs)
# find_library structure:   find_library(name_you_want_to_call_the_lib  lib_name_in_ndk_api)
find_library(log-lib log)


# linking log lib to our native lib
# once you find the library, you have to link that library with your native library
# target_link_libraries structure:  target_link_libraries(you_native_lib  lib_found_using_find_library)
target_link_libraries(my_lib_name ${log-lib})

And final step: add the following to your build.gradle :

externalNativeBuild {
    cmake {
        path 'CMakeLists.txt'
    }
}

You should be able to build it now.

th3pat3l's answer is works fine, but the official documentation for how to add C++ to a project is a little different. Here it is:

https://developer.android.com/studio/projects/add-native-code.html#create-sources

The main difference is the use of file->new->package. The package concept is for adding a java package and has a side effect of creating a folder.

You can do the same thing more directly by switching to project view and just creating the folder where you want it in the directory.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM