Android NDK与Visual Studio

问题描述:

我想为使用NDK(本机开发工具包)的android构建一些本地库,但是我想使用Visual Studio 2010来完成它。我搜索了很多,但没有找到任何信息。有没有人有这方面的经验,并知道做到这一点的必要步骤?我已经安装了CYGWin,确保我获得Make(根据NDK说明),但是我并不确定在设置项目,编译器在Visual Studio等方面的下一步是否有用。Android NDK与Visual Studio

如果有人知道的任何写作,教程,或示例项目的链接,这将是非常棒的,因为谷歌还没有太多。

谢谢!

+0

我不确定你能做到这一点。但是,VS使用nmake(或其他构建工具)。我猜你有机会在Makefile中调用ndk-build? – qrtt1 2010-11-02 07:38:55

Here's another solution,它在Visual Studio中完全集成了NDK。没有makefiles。它表现得像一个适当的Win32项目:

+0

这听起来很酷。有没有人试过它? – 2011-04-21 06:34:10

+0

是的,我试过了,效果很好。它编译并链接到.apk,你可以配置一些选项。您还可以使用WinGDC for Android插件添加调试,请参阅下面的Bellinghammers链接。 – 2011-06-17 23:27:48

+0

解决方案是什么?网站被移动了。 – 2015-04-12 02:53:11

Visual Studio是正式不支持。

一些问题(但不限于):

  • MSVS不能创建正确的ARM二进制文件
  • 的Android的makefile(.mk)不被MSVS

支持然而,存在着第三方解决方案:

你可能想看看DS-5为好,但它不是Visual Studio中。

+0

我们已经部分工作,我们使用Visual Studio来构建,使用正确的android头文件以及whatnot,然后我们调用NDK构建脚本。我们目前正在将后半部分作为后期制作步骤进行自动化。在某个时刻,我会将它记录下来并作为答案放在这里。 – 2010-11-09 20:09:39

+0

您的解决方案bryan的任何更新? – tofutim 2010-12-20 17:34:02

+0

我低估了你的答案,因为这里有选项......除了你上面提到的vs-android之外,还有VisualGDB。 – Justin 2014-03-14 21:11:23

关于如何使用Visual Studio配置环境以调试android NDK代码,以下是一个很好的blog post

+0

博客链接已死亡 – Dib 2016-11-11 11:41:44

我还没有找到一个直接的干净的解决方案,这里是我的解决方法。

我在VS上开发我的本地代码作为静态库,并使用一些测试项目来尝试它作为控制台应用程序。 当它确定时,从cygwin我使用一个小bash脚本,将所有需要的文件复制到jni文件夹并启动标准的android ndk make命令。 (也可以在需要时将某个文件复制到assets文件夹中),在正确的文件夹中生成可执行文件。

要使用pthreads,我已将我的项目链接到pthreads-win32。

我在VS中编译的唯一文件是jni代码。

我希望这可以帮助你。

答案取决于你需要什么样的整合。

要从Visual Studio构建原生Android代码,您可以创建一个新的Makefile项目,并在按下“build”时使其运行ndk-build.cmd。如果你想获得映射的错误信息,你将需要分析ndk-build的输出。cmd并将其转换为Visual Studio可以udnerstand的格式。

如果要调试从Visual Studio中的原生Android代码,您将需要一个第三方工具,将代表的Visual Studio的控制NDK-GDB和几个错误提供解决方法(如重新绑定断点时库加载)。

您可以尝试我们的VisualGDB for Android工具,它正是这么做的 - 创建包裹NDK,建立和控制代表的Visual Studio NDK调试项目。如果您需要更多信息,请拨打step-by-step tutorial available

+0

他们花钱但这是事实 - VisualGDB很适合将Android NDK构建集成到Visual Studio中 – 2015-01-29 15:45:46

另外还有一些其他的第三方替代方案,用于开发除了上述之外的带有VS的ANdroid应用程序。开放源代码dot42位于http://www.dot42.com和Remobjects,http://www.remobjects.com,它允许您在c#,Pascal和Swift中编程。我玩过Remobjects的试用版,现在开始玩dot42。

我使用remobjects试用版让我可以在c#中重新创建我参加的Android课程的教科书中的前五章项目。到目前为止,我还没有和dot42一样的成功,但我需要找点时间来真正给它一个机会。