在eclipse上使用ndk r10
2015-09-11 17:15
387 查看
在eclipse上使用ndk r10
下载NDK:
64位NDK:
http://dl.google.com/android/ndk/android-ndk64-r10-windows-x86_64.zip
开始配置NDK:
1. 将下载好的NDK压缩包放在一个目录里,我放在了E:\ndkr10中,注意:路径不能包括空格;
2. 打开eclipse,新建一个工程TestNdk,打开Window=>preferences=>Android=>NDK,设置NDK路径;
3. 在Android工程下新建一个文件夹叫做jni,来保存ndk的代码;
4. 打开project=>properties=>builders=>New;
Name中添加Ndk_Builder;
Main选项卡里location中填写ndk-build.cmd路径,Working Directory中选Browse Workspace,选择当前的工程,即TestNdk;
Refresh选项卡中勾选Refresh resources upon completion、The entire workspace、Recursively include sub-folders;
Build Options选项卡中勾选Allocate Console(necessary for input)、After a”Clean”、During manual builds、During auto builds、Specify working set of relevant resources;
5. 在TestNdk工程下新建JniClient.class:
保存编译后,在TestNdk\bin\classes\com\example\testndk目录下就有JniClient.class文件了,之后用cmd命令定位到此目录,输入javah com.exaple.testndk.JniClient,在Test\bin\classes目录下生成c++头文件com_example_testndk_JniClient.h;
在文件夹jni下新建一个file,为Android.mk文件:
第一行、第二行和第五行为固定,第三行为编译后.so文件名,第四行为.c文件名
8. 将.h文件拷贝到jni目录下,新建一个相同名字的.c文件,即com_example_testndk_JniClient.c,设置内容为:
在TestNdkActivity.java中完成对JniClient.java中函数的调用:
即运行成功,注意:若无法运行,可能是设备芯片不同,此时需要在jni目录下新建file,命名为Application.mk内容为APP_ABI :=all即可。
参考文档:
http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html
下载NDK:
64位NDK:
http://dl.google.com/android/ndk/android-ndk64-r10-windows-x86_64.zip
开始配置NDK:
1. 将下载好的NDK压缩包放在一个目录里,我放在了E:\ndkr10中,注意:路径不能包括空格;
2. 打开eclipse,新建一个工程TestNdk,打开Window=>preferences=>Android=>NDK,设置NDK路径;
3. 在Android工程下新建一个文件夹叫做jni,来保存ndk的代码;
4. 打开project=>properties=>builders=>New;
Name中添加Ndk_Builder;
Main选项卡里location中填写ndk-build.cmd路径,Working Directory中选Browse Workspace,选择当前的工程,即TestNdk;
Refresh选项卡中勾选Refresh resources upon completion、The entire workspace、Recursively include sub-folders;
Build Options选项卡中勾选Allocate Console(necessary for input)、After a”Clean”、During manual builds、During auto builds、Specify working set of relevant resources;
5. 在TestNdk工程下新建JniClient.class:
package com.example.testndk; public class JniClient { static public native String AddStr(String strA, String strB); static public native int AddInt(int a, int b); }
保存编译后,在TestNdk\bin\classes\com\example\testndk目录下就有JniClient.class文件了,之后用cmd命令定位到此目录,输入javah com.exaple.testndk.JniClient,在Test\bin\classes目录下生成c++头文件com_example_testndk_JniClient.h;
在文件夹jni下新建一个file,为Android.mk文件:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := TestNdk LOCAL_SRC_FILES := com_example_testndk_JniClient.c include $(BUILD_SHARED_LIBRARY)
第一行、第二行和第五行为固定,第三行为编译后.so文件名,第四行为.c文件名
8. 将.h文件拷贝到jni目录下,新建一个相同名字的.c文件,即com_example_testndk_JniClient.c,设置内容为:
#include "com_example_testndk_JniClient.h" #include <stdlib.h> #include <stdio.h> #ifdef __cplusplus extern "C" { #endif /* * Class: com_ndk_test_JniClient * Method: AddStr * Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_example_testndk_JniClient_AddStr (JNIEnv *env, jclass arg, jstring instringA, jstring instringB) { jstring str = (*env)->NewStringUTF(env, "HelloWorld from JNI !"); return str; } /* * Class: com_ndk_test_JniClient * Method: AddInt * Signature: (II)I */ JNIEXPORT jint JNICALL Java_com_ndk_test_JniClient_AddInt (JNIEnv *env, jclass arg, jint a, jint b) { return a + b; } #ifdef __cplusplus } #endif
在TestNdkActivity.java中完成对JniClient.java中函数的调用:
package com.example.testndk; import android.app.Activity; import android.os.Bundle; import android.widget.Toast; public class MainActivity extends Activity { static { System.loadLibrary("TestNdk"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toast.makeText(MainActivity.this,JniClient.AddStr("abc", "123"), Toast.LENGTH_LONG).show(); } }
即运行成功,注意:若无法运行,可能是设备芯片不同,此时需要在jni目录下新建file,命名为Application.mk内容为APP_ABI :=all即可。
参考文档:
http://www.cnblogs.com/chenjiajin/archive/2012/04/12/2444188.html
相关文章推荐
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- 傻瓜式用Eclipse连接MySQL数据库
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- 图解Eclipse j2ee开发环境的搭建过程
- ext for eclipse插件安装方法
- 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
- eclipse导入jquery包后报错的解决方法
- Android NDK开发之:配置环境的详解
- Eclipse 格式化代码时不换行与自动换行的实现方法
- Eclipse下jQuery文件报错出现错误提示红叉
- eclipse如何忽略js文件报错(附图)
- eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
- jquery库或JS文件在eclipse下报错问题解决方法
- 什么是eclipse,eclipse的意思解析
- Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
- eclipse+myeclipse 环境配置方法
- 基于eclipse.ini内存设置的问题详解