![](/img/trans.png)
[英]Eclipse indexer is not finding the functions using the android ndk
[英]Installing & using the Android NDK in Eclipse
我一直在Eclipse(MAC OSX)中運行Android SDK一段時間。 我已經下載了NDK並在Eclipse中安裝了C / C ++工具,但有人可以指導我使用NDK嗎? 例如,我是否只是像普通的那樣創建一個Android項目並用NDK構建它?
如果有人知道的話,真的可以用一個體面的教程。
編輯:好的,所以我現在安裝了NDK(我認為)但有沒有人知道如何使用它? 我得到了這個(取自這里 ):
運行終端
cd~ / android-ndk-1.5_r1
制作APP = hello-jni
為了運行hello-jni示例應用程序,但我在終端中收到錯誤說:
Android NDK:為未知應用程序定義的APP變量:hellojni
Android NDK:您可能希望使用以下其中一項:
build / core / main.mk:81:*** Android NDK:正在中止。 停止。
有什么想法嗎?
就像我可以描述的那樣,在Eclipse中使用NDK構建Android應用程序需要兩個步驟。
首先,在終端內部,您需要在項目上運行NDK構建腳本。 cd到項目目錄的根目錄,然后在該目錄中執行ndk-build腳本。
例如:
cd ~/workspace/hello-jni
./~/android-ndk-1.5_r1/ndk-build
執行此操作后,您應該看到一些輸出導致在項目目錄中的obj目錄中創建* .SO文件。
獲得* .SO文件之后,通過Eclipse構建Android NDK應用程序的最后一步是使用Eclipse構建它,就像使用任何其他應用程序一樣,然后將其部署用於測試。
如果對C / C ++代碼進行任何更改,則需要重新執行第一步並重新生成* .SO文件,然后再從Eclipse中構建和部署應用程序。
我想指出,通過使用Android NDK,您的Android應用程序仍然基於Java。 它們只是通過Java Native Interface與用C / C ++編寫的代碼進行通信。
最后,我不知道任何有助於NDK開發的Eclipse插件。 我所知道的關於NDK的一切我都學到了官方的Android NDK文檔 。 請隨時發表評論並告訴我是否有任何我可以在回復中澄清的內容。
從ADT版本20開始,本機開發和調試支持進入Eclipse環境.http: //tools.android.com/recent/usingthendkplugin
developer.android.com聲明你還需要Cygwin。
http://developer.android.com/tools/sdk/ndk/index.html#Contents
必需的開發工具
NDK中的docs目錄有一些關於如何使用NDK本身的非常好的信息。 閱讀概述,Application.mk和Android.mk HTML文檔。 您需要谷歌搜索Sun JNI PDF,下載它,並在進一步學習之前了解JNI的全部內容。 這是因為使用NDK簡單地將一堆C / C ++代碼編譯到庫中只是該過程的一部分。 您必須編寫調用C / C ++的本機Java代碼,並且必須在C / C ++中創建符合本機Java代碼可以調用的JNI約定的包裝函數。 JNI已經存在了很長時間,它無論如何都不是Android特有的。 因此,您可以通過使用命令行工具(如javah和javac),在了解基礎知識之后,繼續學習面向JNI的教程,然后返回與NDK集成。 (有關這些C墊片的示例,請查看NDK中的hello-jni示例; C源文件通常會顯示墊片的外觀。使用javah生成這些墊片是一種方法,您創建具有本機方法的Java類,使用javah處理它們,並為您生成C頭,然后編寫符合生成的函數原型的C函數)。
注意:雖然NDK文檔可以讓你從命令行手動構建然后進入Eclipse來構建你的應用程序(一系列繁瑣的步驟,當然,特別是如果你要更改C / C ++代碼),它會證明你可以與Eclipse輕松集成,以便每次從Eclipse構建時都運行NDK。 看看怎么樣, 請在這里閱讀 。
這是為了其他想要在eclipse中從頭開始創建項目的人的利益:我在這里的博客中按照這里提到的步驟進行操作並且工作正常: http : //mhandroid.wordpress.com/2011/01/23/using-蝕換機器人-CC-發展/
要嘗試直接回答問題 - 您需要在項目文件夾中包含本機代碼的文件夾中運行ndk-build。 這將在Eclipse中的jni下創建文件資源管理器/資源樹中的.so文件。 如果代碼中的語法正確,這些函數現在可以從您的java代碼中調用。
在安裝和掌握Android Developer Tools和NDK時,我發現了很多幫助來源。 我寫了一篇博文來分享我的經歷,並希望回饋社區,幫助我實現這一目標,這可能有助於理解我的答案: http : //workingmatt.blogspot.co.uk/2013/03/set-up-android- SDK-和ndk.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.