2010-10-29 84 views
18

我想爲使用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

回答

17

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

2

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

6

關於如何使用Visual Studio配置環境以調試android NDK代碼,以下是一個很好的blog post

+0

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

0

我還沒有找到一個直接的乾淨的解決方案,這裏是我的解決方法。

我在VS上開發我的本地代碼作爲靜態庫,並使用一些測試項目來嘗試它作爲控制檯應用程序。 當它確定時,從cygwin我使用一個小bash腳本,將所有需要的文件複製到jni文件夾並啓動標準的android ndk make命令。 (也可以在需要時將某個文件複製到assets文件夾中),在正確的文件夾中生成可執行文件。

要使用pthreads,我已將我的項目鏈接到pthreads-win32。

我在VS中編譯的唯一文件是jni代碼。

我希望這可以幫助你。

1

答案取決於你需要什麼樣的整合。

要從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

0

另外還有一些其他的第三方替代方案,用於開發除了上述之外的帶有VS的ANdroid應用程序。開放源代碼dot42位於http://www.dot42.com和Remobjects,http://www.remobjects.com,它允許您在c#,Pascal和Swift中編程。我玩過Remobjects的試用版,現在開始玩dot42。

我使用remobjects試用版讓我可以在c#中重新創建我參加的Android課程的教科書中的前五章項目。到目前爲止,我還沒有和dot42一樣的成功,但我需要找點時間來真正給它一個機會。