搭建 Win7 Android NDK 開發環境

來源:互聯網
上載者:User

關鍵詞 :JNI, win7 ,android SDK,Android NDK , CYGWin , eclipse , JDK

 

1.下載安裝最新的Cygwinsetup.exe
這裡要注意的是,需要選擇Devel@Install,這個是類比Linux環境必須的、、、、選擇http://mirrors.163.com 下載速度比較快
安裝完以後,開啟輸入make -v和gcc -v進行測試是否安裝成功

2.下載安裝JDK-7u2-windows-i586.exe
後面使用可能產生的問題:在path系統路徑中添加javah.exe的有效路徑,否則使用javah.exe產生JNI的標頭檔的時候會提示javah不是有效程式

3.下載解壓android-ndk-r7-windows.zip,比如D:/Tools/vs2008/HandPhone/android-ndk-r7
解壓後,使用文本開啟xxx\Cygwin\home\Administrator\.bash_profile檔案,在最後加上(上面的路徑,去掉:)、、、使用UE開啟該檔案,不用記事本或者寫字板
NDK=/cygdrive/D/Tools/vs2008/HandPhone/android-ndk-r7
export NDK
儲存退出後,代開Cygwin輸入cd $NDK,如果進入你設定的檔案夾則表示設定成功

後面使用可能產生的問題:如果後面使用的時候提示Android NDK: Host 'awk' tool is outdated.則進入xxx\android-ndk-r7\prebuilt\windows\bin中將awk.exe刪除就可以了

4.下載安裝andriod_sdk_installer_r16-windows.exe,安裝路徑比如:C:\Program Files\Android
①安裝完成後開啟C:\Program Files\Android\android-sdk\platforms\android-8檔案夾,裡面有一個andriod.jar檔案,將其拷貝一份,然後將尾碼改為zip,解壓到目前的目錄下得到一個Andriod的檔案夾
②在classpath的系統路徑中增加該檔案的有效路徑,比如C:\Program Files\Android\android-sdk\platforms\android-8\android
後面使用可能產生的問題:如果不進行這步的設定,在javah操作時將提示
錯誤: 無法訪問android.app.Activity
找不到android.app.Activity的類檔案

5.下面的就是按照eclipse以及c++和andriod開發的相關外掛程式
①下載解壓eclipse
②下載對應版本c++開發外掛程式CDT,如下CDT的如下:

http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/helios/dist/cdt-master-8.0.1.zip,不用解壓。

然後在eclipse中,help->Install new software...
點擊Add按鈕,name中填一個名字如cdt,archive選剛下載的cdt檔案。
去掉Contact all update sites during install to find required software 勾選,原因就是他還要連網擷取資訊,慢死人的。發現那個報錯就將那個包去掉就行了。
③安裝android開發外掛程式
開啟Eclipse, 在功能表列上選擇 help->Install New SoftWare
點擊Add按鈕,name中填andriod,然後網址填https://dl-ssl.google.com/android/eclipse/ (如果出錯,請將https改成http),那個出錯取消那個
安裝成功之後,在eclipse中的window菜單中則出現Andriod SDK Manager和AVD Manager,並且在File->New->Other中出現可建立Andriod工程
④需要注意的是,卸載外掛程式也在help->Install New SoftWare頁面上的“Avaliable Web Site"串連上,可屏蔽可卸載。也可以在help->About Eclipse點擊Installation Detail中進行卸載。

6.OK,上面都完成了的話,下面建立一個Andriod工程試試(可以直接在xxx\android-ndk-r7\samples中建立一個MyFirstJNI工程)
①代碼如下(注意package名):
package com.cn.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MyFirstJNIActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {    
super.onCreate(savedInstanceState);  
TextView tv = new TextView(this);    
tv.setText(stringFromJNI());    
setContentView(tv);    
}    

public native String stringFromJNI();    
static {     System.loadLibrary("MyFirstJNI");     }

}

②這一步可能出現2和4中的問題
使用javah -jni 命令之前,必須使用cmd先cd進入工程的classes檔案夾F:\Eclipse\workspace\MyFirstJNI\bin\classes(切記,在操作過程中無需拷貝任何檔案,在這個檔案夾中包含了全路徑如下F:\Eclipse\workspace\MyFirstJNI\bin\classes\com\cn\test,裡麵包含了檔案MyFirstJNIActivity.class),那麼命令就是javah -jni com.cn.test.MyFirstJNIAcrivity,成功後在classes檔案夾下產生一個com_cn_test_MyFirstJNIActivity.h標頭檔

③在MyFirstJNI檔案夾下建立一個新的檔案夾jni,使用eclipse建立一個com_cn_test_MyFirstJNIActivity.c檔案,
內容如下(函數名和標頭檔中的一樣)
#include <string.h>
#include <jni.h>

jstring Java_com_cn_test_MyFirstJNIActivity_stringFromJNI( JNIEnv* env,     jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello from JNI !");
}

④將xxx\android-ndk-r7\samples\hello-jni\jni中的Android.mk拷貝到xxx\android-ndk-r7\samples\MyFirstJNI\jni中,然後使用文本開啟,修改為
LOCAL_MODULE    := MyFirstJNI
LOCAL_SRC_FILES := com_cn_test_MyFirstJNIActivity.c

⑤開啟Cygwin,cd進入xxx\android-ndk-r7\samples\MyFirstJNI\jni,然後
輸入$NDK/ndk-build
成功將在xxx\android-ndk-r7\samples\MyFirstJNI\libs\armeabi下產生一個.so檔案

⑥OK,大功告成了,eclipse直接F11看看模擬器是否顯示吧

 

 

參照來源

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.