在visual studio 2015中将一个库链接到android NDK应用程序

linking a library to an android ndk application in visual studio 2015

本文关键字:链接 一个 android 应用程序 NDK 2015 studio visual      更新时间:2023-10-16

我在Visual Studio 2015中为Android创建了一个Native-Activity应用程序。如果我只运行示例代码,应用程序工作。我想在我的应用程序中使用和外部库。为此,我做了以下操作:

  1. 添加包含目录到C/c++ ->通用->附加包含目录
  2. 将lib/x86路径添加到链接器->通用->附加库目录
  3. 将库名称添加到链接器->输入->库依赖项
有了这些设置,我可以在我的项目中使用一些库代码并编译它。例如,如果我省略了库目录,编译器就会报错未实现的函数。

但是如果我在模拟器或android手机上运行生成的apk,它会立即崩溃,甚至在任何断点被击中之前。

即使我没有实际使用库(注释掉我自己的所有代码),但只是链接它,应用程序也会崩溃。

我的一个线索是,即使库用于编译应用程序,它也不会复制到apk文件中。我已经解包了apk,它包括libx86中的2个文件:gdbserver和libAndroid1。所以(这是我的本地活动的编译版本)。但是我链接的图书馆不在那里。

我想我应该在项目的某个地方指出我想要我的库包含在apk中,但是我在哪里做呢?

步骤2实际上应该是:将lib$(Platform)路径添加到link ->General->Additional Library Directories

我怀疑你的Android设备正在运行x86(除非它在模拟器中)。$(配置)将自动解析为调试或发布,$(平台)将自动解析为ARM, ARM64, x86等。

为每个库平台建立一个单独的文件夹