`
mmdev
  • 浏览: 12920787 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

搭建 Win7 Android NDK 开发环境

 
阅读更多

关键词 :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看看模拟器是否显示吧


参照来源

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics