eclipse上android ndk 配置及使用javah生成jni 的 .h的头文件
2013-10-19 22:06
330 查看
这是我第一次写博客,希望自己能够坚持下去。平时都是我看别人的技术博客来做东西,对照了很多有时候会发现,对于同一问题的解决可能存在很多的方法,在看了很多方法后可能会产生混淆,导致折腾了很久,浪费了很多宝贵的时间。另一方面,为了巩固我所学到的东西,写一篇博客可以记忆的更牢。1.androidndk配置:在这个网址上下载所需要的资源http://developer.android.com/tools/sdk/ndk/index.html#Installing然后解压资源包放到你能找到的地方在eclipse中点击window->preferences弹出一个对话框,左侧android->NDK,然后在右边浏览你解压后ndk包的根目录.
apply->ok之后ndk就配置完成了。2.创建含有本地方法的android工程File->new->project....这儿和其他的android工程的创建相同,再不多说。然后,加入本地方法支持右键你所见的工程点击androidtools,再点击addNativeSupport,再点击project菜单选择buildall就会看到下面的东西。这样我们就可以写C++的东西了。3.编写含有本地方法的java代码和本地方法的C++代码实现java代码
packagecom.example.nativeactivity;
publicclassNativeHello{
static
{
System.loadLibrary("NativeActivity");
}
publicstaticnativeStringjniNativeHello();
}packagecom.example.nativeactivity;
importandroid.os.Bundle;
importandroid.app.Activity;
importandroid.view.Menu;
importandroid.widget.TextView;
publicclassMainActivityextendsActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextViewtv=(TextView)findViewById(R.id.tv1);
tv.setText(NativeHello.jniNativeHello());
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}
}4.在eclipse中配置执行javah命令生成jni的.h文件。run菜单下点击Externaltools->Externaltoolsconfiguration会弹出一个对话框${system_path:javah}
${project_loc}
选择到有native方法的java类然后点击run,就会看到下面的结果:
[/code]
设置支持的平台:在jni目录下新建一个文件Application.mk,内容是:APP_ABI:=armeabiarmeabi-v7amipsx86表示支持所有的平台,编译运行之后会看到在各种平台上的.so文件
C++源代码:
//NativeActivity.cpp源文件
本人QQ:1091665839希望可以帮到人。
apply->ok之后ndk就配置完成了。2.创建含有本地方法的android工程File->new->project....这儿和其他的android工程的创建相同,再不多说。然后,加入本地方法支持右键你所见的工程点击androidtools,再点击addNativeSupport,再点击project菜单选择buildall就会看到下面的东西。这样我们就可以写C++的东西了。3.编写含有本地方法的java代码和本地方法的C++代码实现java代码
-verbose-jni-classpath"${project_loc}/bin/classes"-d"${project_loc}/jni"${java_type_name}
[/code]
#include<jni.h>右击NativeActivitiy->runas->androidapplicationprograme会看到以下结果:[/code]
#include"com_example_nativeactivity_NativeHello.h"
JNIEXPORTjstringJNICALLJava_com_example_nativeactivity_NativeHello_jniNativeHello
(JNIEnv*env,jclassjc){
jstringjs;
js=env->NewStringUTF("Helloworld");
returnjs;
}
相关文章推荐
- Android NDK学习(3)使用Javah命令生成JNI头文件 .
- Android NDK学习(3)使用Javah命令生成JNI头文件 .
- 【转】Android NDK学习(3)使用Javah命令生成JNI头文件 .
- javah命令自动生成JNI头文件+Eclipse自动配置
- Android NDK学习(3)使用Javah命令生成JNI头文件
- JNI中javah命令的使用,生成.h的头文件
- JNI中javah命令的使用,生成.h的头文件
- JNI中javah命令的使用,生成.h的头文件
- Android中使用javah生成jni头文件的正确方法
- ubuntu14下整合eclipse和javah生成jni头文件遇到无法访问android.app.Activity 找不到android.app.Activity的类文件问题的解决方案
- android ndk开发 使用javah生成jni头文件
- Eclipse中一键调用javah生成jni的头文件
- javah 使用(Javah生成JNI头文件)
- jni编程,使用javah命令生成方法签名头文件
- android ndk使用Javah命令生成JNI头文件
- Eclipse下配置javah.exe自动生成jni头文件
- JNI中javah命令的使用,生成.h的头文件的注意事项
- 正确使用javah命令生成JNI的头文件
- 使用javah生成jni头文件
- Android中JNI使用详解(1)---Eclipse中NDK配置So文件生成