1. 程式人生 > >AndroidNDK初步開發之安裝eclipse外掛支援jni開發(一)

AndroidNDK初步開發之安裝eclipse外掛支援jni開發(一)

因為初次使用AndroidNDK開發,而且使用的是Google近乎遺棄的Eclipse,去jni開發,實在是一件實為苦惱的事,花了我2天的時間~下面把我會分2節來“完美”的說明使用eclipse進行jni開發的步驟。

首先當然是安裝NDK,這裡要說明一下,以前的版本還在用cygwin,當時我接觸過android-ndk-r5c版本的NDK,當時我嘗試了下這一版本的使用,結果發現要想自己寫jni,還最好是用eclipse(如果你是大牛可以略過,反正我不是)。隨後,下載了新版android-ndk-r10e的NDK,其實是相當簡單,但百度了很多好多總結的都不太完善,我的步驟如下:

一、老版本使用cygwin開發ndk的相關配置:

(1)進入cygwin/home/使用者目錄/.bash_profile,新增如下語句:

NDKROOT=/cygdrive/E/ndk/android-ndk-r5c
export NDKROOT
export PATH="$PATH":"$NDKROOT"

(2)複製.bash_profile到C盤的使用者目錄下,再開啟cygwin

(3)開啟cygwin就是模擬的Linux介面了,可以輸入Linux語句,輸入cd $NDKROOT如果出現剛剛配置的目錄說明配置NDK成功。

(4)如果想編譯jni檔案,則需進入到專案的jni目錄下,輸入命令:$NDKROOT/ndk-build就可以將.so檔案匯入到專案的libs裡。

二、新版本NDK的eclipse配置:

1、配置Eclipse與NDK關聯:Preferences->Android->NDK->選擇NDK解壓路徑(如:D:\ndk\android-ndk-r10e)

2、針對專案配置NDK環境:專案右鍵->Preferences->這裡需要修改3個東西,如下:

(1)Builders中:New->Program->填寫Builders名字、ndk-build.cmd路徑、jni路徑->OK

(2)C/C++ Build:

①取消選擇Use default build command並在Build command中輸入${NDKROOT}/ndk-build.cmd。

②C/C++ Build->Environment->Add->名字:變數名:NDKROOT和NDK路徑(如:D:\ndk\android-ndk-r10e)

(3)C/C++ General->Paths and Symbols->Add->NDK目錄下的C庫路徑(如:D:/ndk/android-ndk-r10e/platforms/android-17/arch-arm/usr/include):

完成這3項點選OK,到這裡就可以編寫jni程式碼了。
這裡寫圖片描述
3、附加一點,如果你開啟eclipse會有這個錯誤”Unable to launch cygpath. Is Cygwin on the path?] java.io.IOException: Cannot run program cygpath“,那不用著急,只要在計算機右鍵屬性->高階系統變數->配置環境變數->Path裡新增cygwin的bin目錄路徑即可(如:E:\ndk\cygwin\bin;),不管是使用者變數的Path還是系統變數的Path均可,但如果是使用者變數的Path一定要加上%PATH%;,它表示一併把全域性中Path裡的引數帶到使用者變數裡來。

三、最後關於Android呼叫jni生成.so檔案的問題請看下節

相關推薦

AndroidNDK初步開發安裝eclipse外掛支援jni開發

因為初次使用AndroidNDK開發,而且使用的是Google近乎遺棄的Eclipse,去jni開發,實在是一件實為苦惱的事,花了我2天的時間~下面把我會分2節來“完美”的說明使用eclipse進行jni開發的步驟。 首先當然是安裝NDK,這裡要說明一

微信公眾號開發訂閱號如何獲取使用者資訊

最近在做微信的公眾號的開發。之前是在一個認證過的微信服務號上開發一些相應的功能。 比如說 對認證過的微信服務好進行 自定義選單的開發,模板訊息的回覆以及關鍵詞回覆的功能。 但是目前新接了這樣一個需求:

Android開發手把手教你寫ButterKnife框架

系列文章目錄導讀: 一、概述 JakeWharton我想在Android界無人不知,無人不曉的吧, ButterKnife這個框架就是出自他隻手。這個框架我相信很多人都用過,本系列部落格就是帶大家更加深入的認識這個框架,ButterKnife截至目前

iOS開發打包上傳到App Store——各種證書的理解

OK,有日子沒寫iOS開發的相關文章啦,主要是最近的精力都沒在這上面,不過既然產品已經快要出來了,就有必要了解一下各種證書啥的(眾所周知iOS的一堆證書可是很讓人頭大呀),最近確實被這個搞得頭大,然後就決定參考網上的一些資料,進行一下整理,留作一個備份。 在我們平常的

測試開發Django——No3.Django中的試圖views

說到views,我們先來說django中執行的一個順序。 我們開啟一個django中配置的頁面,之後的執行是有這麼幾個步驟:   1.系統配置的urls中尋找是否配置了這個地址;   2.如果已經配置了這個地址,那麼查詢他對應的views;   3.根據views的return,來查詢頁面上顯示的模板

react-native開發專案連線夜神模擬器步驟window

這裡是window為準, 因為mac電腦 夜神模擬器暫時沒有搖一搖功能 連線夜神模擬器 adb.exe connect 127.0.0.1:62001 返回 connected to 127.0.0.1:62001 說明 連線成功!!!! cmd 開啟命令編輯器 進入專案目錄 win

iOS開發Weex爬坑路環境部署和Devtools Debug

前言 不多說,直接開始Weex,算是記錄這段時間對新技術的學習積累。期間看了很多Vue.js和Node.js的基礎,順便捋了以下CSS的flex-box佈局等等前端的知識,太多了太雜了,還是用筆記記錄下。直接從官方介紹,開始 補充一個傳送門:和文章沒什麼關係 JS中的async和await

Android開發AIDL實現遠端服務程序通訊IPC

首先什麼是AIDL呢,它是Android系統中的一種介面定義語言,用於約束兩個程序間的通訊規則,供編譯器生成程式碼。 實現Android裝置上的兩個程序間通訊(IPC),程序之間的通訊資訊首先會被轉換成AIDL協議資訊,然後傳送給對方;對方接收到AIDL協議資

如何開發優秀的HTML5遊戲?-迪斯尼《尋找奧茲路》遊戲技術詳解

        前言        迪斯尼《Find Your Way to OZ》這個貼近地氣的遊戲我在最新一期《程式設計師》雜誌的《從HTML5移動應用現狀談發展趨勢》這篇文章裡有所提及,它借用了近期上映的《魔境仙蹤》電影的設定(設定來自於經典故事《綠野仙蹤》,看過這個電

Android開發仿QQ側滑刪除實現

一、把SlideDelete的簡單樣式先做出來。 SlideDelete繼承自ViewGroup,在引用SlideDelete的xml的位置include進兩個layout,一個是內容,一個是刪除 一、1、準備兩個佈局 內容部分 <?xml version="1.

大資料系列分散式釋出訂閱訊息系統KafkaKafka簡介,組成,叢集安裝

1.Kafka簡介   Kafka如同JMS(Java Message Service)一樣,是一箇中間件,在異構系統間通訊,為不同的系統之間提供服務。我們知道JMS通過佇列(一對一)與主題(一對多)兩種形式提供服務,而Kafka則通過主題(topic),來給一組消費者提供

微信公眾平臺開發相同關鍵詞不同回覆-php語言

1.微信公眾平臺開發必備的一個基礎功能是關鍵詞回覆。但有時候我們的微信公眾號的需要關鍵詞回覆的模組比較多時,例如“預設情況下的關鍵詞回覆,查詢天氣時的關鍵詞回覆,或者成語接龍等文字遊戲的關鍵詞回覆”,模組多時不可避免的會出現關鍵詞衝突的問題。 2.在每天蒐集公

Android開發手把手教你寫ButterKnife框架

系列文章目錄導讀: 一、概述 然後在Processor裡生成自己的程式碼,把要輸出的類,通過StringBuilder拼接字串,然後輸出。 try { // write the file JavaFileObject

網站開發HTML基礎知識及超連結

        前面的文章我講述了HTML的基礎知識。包括:1.JSP前段設計及HTML基礎介紹;2.HTML常用標記符:HEAD、HTML屬性、BODY設定背景、註釋、FONT、B\I\U;3.HTML設定段落格式:分段P、換行BR、標題樣式Hn、HR、align對齊、列

iOS開發Weex爬坑路環境部署和Devtools Debug

前言不多說,直接開始Weex,算是記錄這段時間對新技術的學習積累。期間看了很多Vue.js和Node.js的基礎,順便捋了以下CSS的flex-box佈局等等前端的知識,太多了太雜了,還是用筆記記錄下。直接從官方介紹,開始補充一個傳送門:和文章沒什麼關係介紹啟動環境,搭建第一

React—Native開發 Could not connect to development serverAndroid解決方法

寫在最前面:    本來,我是有一篇部落格 RN開發之BUG 總結(持續更新) 來專門總結自己在React-Native開發中遇到的各種BUG 以及其解決辦法的。但是,由於 Could not conn

linux設備驅動misc驅動框架源碼分析

linux驅動開發misc設備驅動 1、misc設備驅動框架源碼部分是由內核開發者實現提供的,主要是創建misc類和為驅動開發者提供misc_register函數,來進行創建misc設備。 這部分的源碼在/drvier/char/misc.c裏,代碼如下:/* * linux/drivers/c

數論歐幾裏德算法

add ext 數論 data -m line tracking end nes 簡單介紹: 歐幾裏德算法。又稱輾轉相除法,是求解最大公約數的算法。 定理: 歐幾裏德算法的理論支撐為GCD遞歸定理。以下介紹這個定理。 GCD遞歸定理: 對隨意非

iphone數據存儲-- Core Data的使用

last 內容 按鈕 entity /var/ hive ask 麻煩 選擇 http://www.cnblogs.com/xiaodao/archive/2012/10/08/2715477.html 一、概念 1.Core Data 是數據持久化存儲的最佳方式 2.數據

【opencv入門七】形態學圖像處理:膨脹、腐蝕

tar struct show 函數 使用 運算 腐蝕和膨脹 依賴 版本 參考網站: http://blog.csdn.net/poem_qianmo/article/details/23710721 1、形態學(morphology)概述   數學形態學(Mathem