ndk教程点击打开链接

第一个问题:没有找到jni下的Android.mk文件,console下提示如下

Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 11 in ./AndroidManifest.xml <Ps:此处警告可以无视>   
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk 
E:/job/ndk/android-ndk-r10/build/core/add-application.mk:209: *** Android NDK: Aborting...    .  Stop.
错误的原因是,我将 jni 文件加名称写成 jnk 了,相当无语,尽然纠结了很久才发现

修正之后,console下的输出为:
Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersion 11 in ./AndroidManifest.xml    
[armeabi] Compile thumb  : hello-jni <= hello-jni.c
[armeabi] SharedLibrary  : libhello-jni.so
[armeabi] Install        : libhello-jni.so => libs/armeabi/libhello-jni.so

此时项目下会多出来一些文件加及文件,截图如下

第二个问题:C文件中的函数命名错误,错误日志如下:

03-06 14:18:04.868: E/AndroidRuntime(18613): FATAL EXCEPTION: main
03-06 14:18:04.868: E/AndroidRuntime(18613): java.lang.UnsatisfiedLinkError: Native method not found: com.ex.testndk.HelloJni.stringFromJNI:()Ljava/lang/String;
03-06 14:18:04.868: E/AndroidRuntime(18613): at com.ex.testndk.HelloJni.stringFromJNI(Native Method)
03-06 14:18:04.868: E/AndroidRuntime(18613): at com.ex.testndk.HelloJni.onCreate(HelloJni.java:36)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.Activity.performCreate(Activity.java:5109)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2161)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2247)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.ActivityThread.access$600(ActivityThread.java:148)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.os.Handler.dispatchMessage(Handler.java:99)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.os.Looper.loop(Looper.java:137)
03-06 14:18:04.868: E/AndroidRuntime(18613): at android.app.ActivityThread.main(ActivityThread.java:5138)
03-06 14:18:04.868: E/AndroidRuntime(18613): at java.lang.reflect.Method.invokeNative(Native Method)
03-06 14:18:04.868: E/AndroidRuntime(18613): at java.lang.reflect.Method.invoke(Method.java:511)
03-06 14:18:04.868: E/AndroidRuntime(18613): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-06 14:18:04.868: E/AndroidRuntime(18613): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-06 14:18:04.868: E/AndroidRuntime(18613): at dalvik.system.NativeStart.main(Native Method)
问题截图

此处的命名应该是对应java源码文件目录的(com.ex.testndk),正确写法是:Java_com_ex_testndk_HelloJni_stringFromJNI( JNIEnv* env,  jobject thiz )【此处开头的Java必须要是大写】,一下为正确截图:

好了,这样就OK了,对项目Run As,结果如下:

第三:  友情来接  其它一些常见问题

随笔记录使用DNK时遇到的几个问题相关推荐

  1. MySQL 当记录不存在时insert,当记录存在时update

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的 ...

  2. mysql插入实现存在更新_mysql 记录不存在时插入 记录存在则更新的实现方法

    mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...

  3. mysql 主机不存在_MySQL 当记录不存在时插入,当记录存在时更新

    MySQL 当记录不存在时插入,当记录存在时更新 2012-1-30 17:58 Monday 分类:MySQL 评论(71) 浏览(21592) MySQL 当记录不存在时插入,当记录存在时更新 网 ...

  4. MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)...

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...

  5. 【原创】微信支付遇到的各种坑及解决方案随笔记录,invalid signature, “errMsg“:“chooseWXPay:fail“

    [原创]微信支付遇到的各种坑及解决方案随笔记录,invalid signature, "errMsg":"chooseWXPay:fail" 参考文章: (1) ...

  6. 记录--Spyder打开时出现“An error occurred while starting the kernel“

    记录–Spyder打开时出现"An error occurred while starting the kernel" 使用Spyder时出现"An error occu ...

  7. 记录版本更新安装时解析包报错

    记录版本更新安装时解析包报错 2020-07-09 17:05:52.785 24157-24213/? W/OPInstallStaging: Error staging apk from cont ...

  8. 谷粒商城P85问题记录—发布商品时规格参数不显示-2022/4/8

    谷粒商城P85问题记录-发布商品时规格参数不显示 这一p有2个问题,折腾了很久 问题1 :数据库表中不存在 valueType这个键 但是接口文档里是需要提供这个键(而且是不能为null) 所以需要: ...

  9. 自己初学时的随笔记录

    如果富文本编辑器 jsp....文件可以找到但是就是显示不出来,可能是Controller控制器中@RequestMapping后边没有写路径 ---------------------------- ...

  10. 小记~随笔[记录一个Matlab的中的一个错误]

    记录一个Matlab的错误 导语 : 今天打开了Matlab , 在初始化完毕后出现了一个报错 , 通过回忆之前的操作我解决了这个问题. 并产生了一些思考. 这篇属于随笔类的文章 , 文笔散乱 , 想 ...

最新文章

  1. 如何在Fragment中使用findViewById
  2. 面试题编程题06-python 输入一个字符串,反转输出
  3. 用gojs写的流程图demo
  4. a href=# 与 a href=javascript:void(0) 的区别
  5. Java8 List<对象> 转 Set、Map(高级)、排序、分组、统计
  6. postgres触发器使用
  7. Google Kick Start 2018 Round C Planet Distance
  8. .net中Windows窗体间的数据交互
  9. 编译OpenJDK8:OpenJDK8与OpenJDK8u运行结果相差很大
  10. Word如何插入分数
  11. 不懂zencart该如何找出路-新手soho建站指南
  12. java毕业设计——基于Java+AI的五子棋游戏设计与实现(毕业论文+程序源码)——五子棋游戏
  13. 我是如何录制技术视频教程的?
  14. [ZJOI2015] 幻想乡战略游戏——树链剖分
  15. 拼接两条有重叠区域的核酸序列
  16. 被冲击的2022届普通毕业生
  17. 小伙熬夜用C++开发泡泡堂游戏,网友直呼:666!
  18. 抢火车票软件推荐哪个好?
  19. BUUCTF之Had a bad day
  20. 软件测试理论基础知识详解(新手入门必看)

热门文章

  1. c1xx : warning C4199: C++/CLI、C++/CX 或 OpenMP 不支持两阶段名称查找;请使用 /Zc:twoPhase-
  2. Gramine(原graphene-sgx)软件栈
  3. 投票男神女神公众号投票系统_男神女神投票 v5.5.21版本
  4. php配置 验证码无法显示,PHP验证码无法显示的原因及解决办法
  5. CSS揭秘--笔记--滚动提示
  6. 如何在vue中插入语音提示
  7. 分享几个边玩儿边学的游戏App,学习从未如此轻松有趣
  8. [转载] 百家讲坛——郦波评说曾国藩家训上部 01 谁来拯救笨小孩
  9. iptables中DNAT、SNAT和MASQUERADE的原理
  10. 路在何方 路在脚下 -- !!