jni helloworld 如何编译 hello jni

如何编译 hello jni――简介

android ndk的版本一直在更新,但是android ndk对应的例子程序却没有怎么更新,现存的很多的文档也没有跟上速度,以至于对于的ndk的第一个程序"hellojni”;

对于许多人而言,想跑通也变的非常的困难;

现将android-ndk-r9d 下的"hellojni"运行流程记录如下,希望对大家有作用;

方便他人亦是方便自己,如果觉得还行就点下赞吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!

如何编译 hello jni――工具/原料
win7 x64ADT adt-bundle-windows-x86_64-20140321NDK android-ndk-r9d如何编译 hello jni――方法/步骤

如何编译 hello jni 1、

如果还没有配置android ndk环境,可以看“android ndk r8 r9环境配置”:

http://jingyan.baidu.com/article/f25ef2546f53e3482c1b82da.html

注:本帖子仅仅是针对ndk r9而言,由于ndk r9存在这个bug,所以才会有一下的操作方法,如果是r10的话,不需要这么操作,具体可以看:

http://jingyan.baidu.com/article/3ea51489e7a9bd52e61bbac7.html

这个帖子的最后有介绍,谢谢!


如何编译 hello jni 2、

打开Eclipse,选择菜单 "File->New->other...";


如何编译 hello jni 3、

选择“Android->Android Project from Existing Code”后,点击 Next;


如何编译 hello jni 4、

① 点击"Browse..."按钮,选择"ndk根目录下->samples->hello-jni",如我的目录是“D:Androidandroid-ndk-r9dsampleshello-jni”;

② 取消“Project:->Project to import->tests”的复选框;

③ 选中“Copy projects into workspace”

④ 如下图,后点击 Finish 完成

如何编译 hello jni_jni


如何编译 hello jni 5、

① 选择““HelloJni”工程后点击右键->Android Tools->Add Native Support...”;

② 在 "Add Android Native Support" 界面点击 Finish

jni helloworld 如何编译 hello jni

如何编译 hello jni 6、

打开工程文件 “hellojni->jni->hello-jni.c",发现报错:”Method 'NewStringUTF' could not be resolved“;如下图所示;解决方法:

①将 文件名”hello-jni.c“改为”hello-jni.cpp“;

②将文件”hello-jni.cpp“中的

函数 ”Java_com_example_hellojni_HelloJni_stringFromJNI“的最前面加上"extern C"

③将文件”hello-jni.cpp“中的

函数 ”Java_com_example_hellojni_HelloJni_stringFromJNI“

的最后一行的代码:

”return (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");“

改为

”return env->NewStringUTF("Hello from JNI ! Compiled with ABI " ABI ".");“

④在工程文件"hellojni->jni->Android.mk”中的

“LOCAL_SRC_FILES := hello-jni.c”改为“LOCAL_SRC_FILES := hello-jni.cpp”

⑤点击工具栏上的按钮 Build All(Ctrl+B),或者使用快捷键"Ctrl+B"

⑥改为后的文件内容如下:

如何编译 hello jni_jni


如何编译 hello jni 7、

点击工程"hellojni右键->Debug As->Andrid Native Application;结果报错:

“Unable to resolve target 'android-3'”,解决方法:

打开工程文件“hellojni->AndroidManifest.xml”选择”Manifest分页->Manifest Extras->Uses SDK“,修改右边”Atributes for User Sdk“下的“Min SDK Version”为19, “Target SDK Version"为19, (注:19是android4.4.2版,目前最新版),保存;

如何编译 hello jni_jni


如何编译 hello jni 8、

保存后又发现错误提示”Avoid hardcoding the debug mode;“,解决方法:”打开AndroidManifest.xml文件Application分页“,将"Application Attributes"下的 Debuggable 属性框中的 true 清除掉;如下:(注:更好对这个问题的解决方法见我百度经验);


如何编译 hello jni 9、

点击工程"hellojni右键->Debug As->Andrid Native Application;运行结构


如何编译 hello jni 10、

至此已经完成,如果还有疑问可以留言哦

  

爱华网本文地址 » http://www.413yy.cn/a/8104570103/305447.html

更多阅读

最为详细的教程,教你如何反编译与回编译 精 java 反编译

最为详细的教程,教你如何反编译与回编译 精——简介学会反编译比较关键,也是我们美化必须掌握技术,学会反编译也是实现制作ROM的起步,ROM高手必然是反编译高手这里有必要说一下,教程只是给你一个动手的那一个跷板,教程不是万能的,给了你基

自己动手写操作系统虚拟实现,软盘启动 虚拟软盘

自己动手写操作系统在VMware下实现软驱加载并运行。最近刚开始学习OS和汇编,于是打算自己试试。当然自己完全不懂,根据零星的资料下手,刚开始错误百出。刚弄明白nasm是如何编译生成.bin,.o,.img文件,确在

如何减少QuartusII的编译时间 如何减少维修时间

对于减少QuartusII的编译时间的方法,可从三个角度进行考虑。第一,从开发所使用的计算机入手,选择合适的CPU、操作系统并进行合理的设置从而提高编译速度;第二,从QuartusII软件入手,对编译相关的选项进行合理设置,从而提高编译效率;第三,针对

如何编写高质量的VB代码 编写高质量代码

本文描述了如何通过一些技术手段来提高VB代码的执行效率。这些手段可以分为两个大的部分:编码技术和编译优化技术。在编码技术中介绍了如何通过使用高效的数据类型、减少外部引用等编程手段来提高代码执行速度,减少代码消耗的系统资源

声明:《jni helloworld 如何编译 hello jni》为网友色彩分享!如侵犯到您的合法权益请联系我们删除