android - 将 C++ 添加到 Android Studio 2.2

标签 android c++ gradle android-ndk

我似乎找不到这个问题的简单、简洁的答案。

我正在将我的一款游戏移植到 Android。这是我第一次尝试这样做,这个系统太陌生了,以至于削弱了我对新系统的 react 能力。

我维护了一个看起来像这样的跨平台代码库:

Windows_Core/
Mac_Core/
iOS_Core/
Linux_Core/
Android_Core/
Game_Code/

游戏本身驻留在 Game_Code 中,每个系统的每个项目要么设置系统自己的“核心”代码的包含路径,要么就 XCode 而言,只是将核心代码添加到项目中。

我如何在 Android Studio 2.2 中使用 Gradle 模仿它?我尝试添加到 gradle 脚本中的任何内容都会被忽略或导致实际错误。

如果我使用 Gradle 生成一个新的 NDK 项目,我该怎么做才能添加我现有的 Game_Code/*.cpp/h 以使它们成为项目的一部分,并设置一个正确的包含路径以便代码像

#include "graphics_core.h"

将从 Android_Core/拉取 ?

最佳答案

使用 CMakelists 将您的代码包含并构建到共享库中。 https://developer.android.com/studio/projects/add-native-code.html

具体来说,在您的 GameCode/和 Android_Core/目录中使用 CMakeLists,并在根目录中使用 CMakeList 为这两个目录调用“add_subdirectory”。

这是简单的部分。实际上,您想要的是一个使用 OpenGL ES 2+ 绘制到屏幕的 native_activity 示例:https://github.com/googlesamples/android-ndk/tree/master/hello-gl2

我什至会推荐使用 nVidia 工具:https://github.com/PolygonTek/BlueshiftEngine/tree/master/Engine/Source/Dependencies/nvidia ,尤其是 nv_file 和 nv_egl 实用程序。

关于android - 将 C++ 添加到 Android Studio 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44096913/

相关文章:

android - MediaStore.EXTRA_OUTPUT 在横向模式下始终包含 null

c++ - SetOaNoCache 在哪里定义的?

android - 如何获取未读gmail邮件的数量(在android上)

android - 无法使用 android ndk 使图像变灰

c++ - 如何使用 gmock 测试一个类调用它的基类方法

c++将参数发送到union(变量 union )

java - NoClassDefFoundError:在Jenkins上使用SSHJ时,org/bouncycaSTLe/openssl/PEMParser

gradle - 在哪里下载 Netflix Astyanax 依赖项?

android - 程序类型已经存在 : android. support.v7.appcompat.R

c# - 400 错误请求仅在 Android 应用程序中无效的主机名