【问题标题】:C/C++ with Android Studio version 2.2带有 Android Studio 版本 2.2 的 C/C++
【发布时间】:2016-11-01 22:06:08
【问题描述】:

使用 Android Studio 2.2,以及他们添加的新 C++ 支持;我现在可以在android studio中编写和编译吗,还是需要单独编译和导入我的库

【问题讨论】:

  • 关注this
  • 好的。我通常只将 java 用于 android 项目,但是当我看到在更新期间添加了 clang++ 时,我感到非常兴奋。我已经使用 C++ 几年了,而 java 对我来说相当新。如果我正确阅读了您的链接,则说明虽然存在支持;对于一些小事,我最好使用 java?

标签: android c++ c android-studio


【解决方案1】:

简短回答:可以。

这是你可以做的1
1) 在 Android Studio 中,右键单击您的模块 ==> 新建 ==> 包
2)将包(文件夹)命名为cpp(也可以命名为jni
3)你会在左边看到cpp目录。
4) 您可以在该文件夹中创建.cpp.h 和其他文件。

现在你必须告诉 gradle 如何构建它。
您需要安装CMake2
1) 转到首选项 ==> Android SDK ==> SDK 工具 ==> CMake
2)选择它并单击应用和确定

现在,您需要将CMakeLists.txt 文件添加到您的项目中。
路径:my_project/app/CMakeLists.txt

文件应该是这样的:

# 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})

最后一步:将以下内容添加到您的build.gradle

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

您现在应该可以构建它了。

【讨论】:

  • 非常感谢。这正是我想要的。
  • 嗨! @th3pat3你能帮我解决这个问题吗?看来您对 NDK 有更多的了解。如果我能得到您的帮助,我将不胜感激:stackoverflow.com/q/44281689/1468354
  • @THEPATEL 我有大约 8 个 .cpp 文件,所以我需要将它们全部包含在 CMakeLists.txt 文件中吗?
【解决方案2】:

th3pat3l 的回答很好,但是关于如何将 C++ 添加到项目的官方文档有点不同。这里是:

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

主要区别在于file->new->package的使用。包的概念是添加一个java包,有创建文件夹的副作用。

您可以通过切换到项目视图并在目录中创建所需的文件夹来更直接地执行相同的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 2011-05-22
    • 1970-01-01
    相关资源
    最近更新 更多