我有一个C++代码库,当前在Visual Studio中设置(在Windows上运行),多个项目具有相互依赖关系。我试图将其转移到Android Studio,以使其在Android上运行。 我对Visual Studio和C++很熟悉,但是对于Android Studio的Gradle和CMake来说还是很新的。Android Studio中的多个本机模块
我的(可能是错误的)期望是尝试和对待Android Studio项目,如Visual Studio Solutions和Android Studio模块,如Visual Studio Projects。鉴于我的代码库在Visual Studio中使用多个项目,我正尝试在Android Studio中创建多个模块 - 每个模块都有自己的build.gradle和CMakeLists.txt文件。
问题是我无法获得一段代码(AS模块)与其他链接。我正在使用add_library()编译这些不同的部分为STATIC(我打算让一个模块创建SHARED库,以加载到Java中)。
我可以很容易地通过include_directories("../OtherModule/src/")获得包括工作。但是,我无法将其链接。我找不到要链接到的.so(或类似)文件(通过target_link_libraries()或同等文件)。当我从给定的模块中提取.arr文件时,我没有看到任何.so或任何东西。
我知道我可以简单地把整个基本代码下一个模块(使用一个build.gradle和一个CMakeLists.txt - 或网络的使用add_subdirectory()CMakeLists.txt“S)。我不知道这是否正确,或者是否需要更多/更少的时间来构建。
我相信可以有多种方式来设置它,它可能只是一个偏好问题。到目前为止,我所做的所有研究都只发现使用Java代码严格将本地代码添加到相同的模块 - 执行基本的JNI本机桥接器。我一直无法找到关于多个本地模块链接在一起的单篇文章。
我希望有更多的Android本地开发经验的人可以帮助我。谢谢!
TL; DR:简化方案:(不关心JNI本机桥)我在Android Studio中有两个模块,都只有本机代码。我希望每个模块都有自己的build.gradle和CMakeLists.txt,创建自己的STATIC库。一个模块依赖于另一个模块,并且必须设置正确的包含和链接目录。怎么办?这是否正确(或者应该只有一个带有本机代码的模块)?