首页 > 软件开发 > 编程语言 >

如何编译 hello jni

来源:互联网 2023-03-17 00:28:14 458

android ndk的版本一直在更新,但是android ndk对应的例子程序却没有怎么更新,现存的很多的文档也没有跟上速度,以至于对于的ndk的第一个程序"hellojni”;Qpp办公区 - 实用经验教程分享!

对于许多人而言,想跑通也变的非常的困难;Qpp办公区 - 实用经验教程分享!

现将android-ndk-r9d 下的"hellojni"运行流程记录如下,希望对大家有作用;Qpp办公区 - 实用经验教程分享!

方便他人亦是方便自己,如果觉得还行就点下赞吧,这样可以帮助其他人更快的找到解决问题的方法;有疑问的也可留言哦, 谢谢!Qpp办公区 - 实用经验教程分享!

Qpp办公区 - 实用经验教程分享!

Qpp办公区 - 实用经验教程分享!

工具/原料

  • win7 x64
  • ADT adt-bundle-windows-x86_64-20140321
  • NDK android-ndk-r9d

方法/步骤

  • 1

    如果还没有配置android ndk环境,可以看“android ndk r8 r9环境配置”:Qpp办公区 - 实用经验教程分享!

    http://jingyan.baidu.com/article/f25ef2546f53e3482c1b82da.htmlQpp办公区 - 实用经验教程分享!

    注:本帖子仅仅是针对ndk r9而言,由于ndk r9存在这个bug,所以才会有一下的操作方法,如果是r10的话,不需要这么操作,具体可以看:Qpp办公区 - 实用经验教程分享!

    http://jingyan.baidu.com/article/3ea51489e7a9bd52e61bbac7.htmlQpp办公区 - 实用经验教程分享!

    这个帖子的最后有介绍,谢谢!Qpp办公区 - 实用经验教程分享!

  • 2

    打开Eclipse,选择菜单 "File->New->other...";Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 3

    选择“Android->Android Project from Existing Code”后,点击 Next;Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 4

    ① 点击"Browse..."按钮,选择"ndk根目录下->samples->hello-jni",如我的目录是“D:\Android\android-ndk-r9d\samples\hello-jni”;Qpp办公区 - 实用经验教程分享!

    ② 取消“Project:->Project to import->tests”的复选框;Qpp办公区 - 实用经验教程分享!

    ③ 选中“Copy projects into workspace”Qpp办公区 - 实用经验教程分享!

    ④ 如下图,后点击 Finish 完成Qpp办公区 - 实用经验教程分享!

    Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 5

    ① 选择““HelloJni”工程后点击右键->Android Tools->Add Native Support...”;Qpp办公区 - 实用经验教程分享!

    ② 在 "Add Android Native Support" 界面点击 FinishQpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 6

    打开工程文件 “hellojni->jni->hello-jni.c",发现报错:”Method 'NewStringUTF' could not be resolved“;如下图所示;解决方法:Qpp办公区 - 实用经验教程分享!

    ①将 文件名”hello-jni.c“改为”hello-jni.cpp“;Qpp办公区 - 实用经验教程分享!

    ②将文件”hello-jni.cpp“中的Qpp办公区 - 实用经验教程分享!

    函数 ”Java_com_example_hellojni_HelloJni_stringFromJNI“的最前面加上"extern C"Qpp办公区 - 实用经验教程分享!

    ③将文件”hello-jni.cpp“中的Qpp办公区 - 实用经验教程分享!

    函数 ”Java_com_example_hellojni_HelloJni_stringFromJNI“Qpp办公区 - 实用经验教程分享!

    的最后一行的代码:Qpp办公区 - 实用经验教程分享!

    ”return (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");“Qpp办公区 - 实用经验教程分享!

    改为Qpp办公区 - 实用经验教程分享!

    ”return env->NewStringUTF("Hello from JNI ! Compiled with ABI " ABI ".");“Qpp办公区 - 实用经验教程分享!

    ④在工程文件"hellojni->jni->Android.mk”中的Qpp办公区 - 实用经验教程分享!

    “LOCAL_SRC_FILES := hello-jni.c”改为“LOCAL_SRC_FILES := hello-jni.cpp”Qpp办公区 - 实用经验教程分享!

    ⑤点击工具栏上的按钮 Build All(Ctrl B),或者使用快捷键"Ctrl B"Qpp办公区 - 实用经验教程分享!

    ⑥改为后的文件内容如下:Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 7

    点击工程"hellojni右键->Debug As->Andrid Native Application;结果报错:Qpp办公区 - 实用经验教程分享!

    “Unable to resolve target 'android-3'”,解决方法:Qpp办公区 - 实用经验教程分享!

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

    Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 7相关内容未经授权抓取自百度经验
  • 8

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

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 9

    点击工程"hellojni右键->Debug As->Andrid Native Application;运行结构Qpp办公区 - 实用经验教程分享!

    如何编译 hello jniQpp办公区 - 实用经验教程分享!

  • 10

    至此已经完成,如果还有疑问可以留言哦Qpp办公区 - 实用经验教程分享!

  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Qpp办公区 - 实用经验教程分享!


    标签: 编程语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码