NDK常见错误
1.错误1: android mk文件没有定义
$ ndk-build
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /cygdrive/e/heima5
/day2/code/ndkhelloworld/jni/Android.mk
/cygdrive/d/TDDownload/android-ndk-r6-windows/android-ndk-r6/build/core/add-appl
ication.mk:116: *** Android NDK: Aborting... . Stop.
错误2: c代码编译不通过
$ ndk-build
Compile thumb : hello <= Hello.c
E:/heima5/day2/code/ndkhelloworld/jni/Hello.c: In function 'Java_cn_itcast_ndk1_
DemoActivity_helloFromJNI':
E:/heima5/day2/code/ndkhelloworld/jni/Hello.c:8: error: 'ctr' undeclared (first
use in this function)
E:/heima5/day2/code/ndkhelloworld/jni/Hello.c:8: error: (Each undeclared identif
ier is reported only once
E:/heima5/day2/code/ndkhelloworld/jni/Hello.c:8: error: for each function it app
ears in.)
E:/heima5/day2/code/ndkhelloworld/jni/Hello.c:8: error: expected ';' before 'c'
make: *** [/cygdrive/e/heima5/day2/code/ndkhelloworld/obj/local/armeabi/objs/hel
lo/Hello.o] Error 1
错误3:方法的签名不对应
java.lang.reflect.Method.invokeNative
java.lang.UnsatisfiedLinkError
错误5:
02-11 03:24:53.925: E/AndroidRuntime(5763): Caused by: java.lang.UnsatisfiedLinkError: Library Hello not found
静态代码块里面加载的库文件不正确
6.C库中逻辑错误:
02-11 03:28:59.074: INFO/ActivityManager(59): Displayed activity cn.itcast.ndk1/.DemoActivity: 1010 ms (total 246132 ms)
02-11 03:29:00.844: INFO/DEBUG(31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
02-11 03:29:00.844: INFO/DEBUG(31): Build fingerprint: 'generic/sdk/generic/:2.2/FRF91/43546:eng/test-keys'
02-11 03:29:00.854: INFO/DEBUG(31): pid: 6262, tid: 6262 >>> gefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefgefge <<<
02-11 03:29:00.854: INFO/DEBUG(31): signal 11 (SIGSEGV), fault addr bee30000
02-11 03:29:00.854: INFO/DEBUG(31): r0 bee2f7c0 r1 bee2f7c4 r2 bee2f7c7 r3 00000839
02-11 03:29:00.854: INFO/DEBUG(31): r4 00000067 r5 00000004 r6 4185153f r7 4186bd14
02-11 03:29:00.854: INFO/DEBUG(31): r8 bee2f7d0 r9 4186bd0c 10 4186bcf4 fp 00000000
02-11 03:29:00.854: INFO/DEBUG(31): ip 80901428 sp bee2f7b8 lr 8090033b pc afd1cb6c cpsr 20000030
02-11 03:29:01.206: INFO/DEBUG(31): #00 pc 0001cb6c /system/lib/libc.so
02-11 03:29:01.214: INFO/DEBUG(31): #01 pc 00000338 /data/data/cn.itcast.ndk1/lib/libhello.so
02-11 03:29:01.214: INFO/DEBUG(31): code around pc:
02-11 03:29:01.224: INFO/DEBUG(31): afd1cb4c b005d1e8 bdf01c28 00023828 000000f0
02-11 03:29:01.224: INFO/DEBUG(31): afd1cb5c 1c02b510 3201e000 2b007813 5cccd1fb
02-11 03:29:01.224: INFO/DEBUG(31): afd1cb6c 330154d4 d1fa2c00 46c0bd10 428b7803
02-11 03:29:01.234: INFO/DEBUG(31): afd1cb7c 2b00d004 3001d001 2000e7f8 46c04770
02-11 03:29:01.234: INFO/DEBUG(31): afd1cb8c 2300b510 3301e004 d1012a00 e0042000
02-11 03:29:01.234: INFO/DEBUG(31): code around lr:
02-11 03:29:01.244: INFO/DEBUG(31): 80900318 4b0db510 a901b082 681b447b 46681c04
02-11 03:29:01.244: INFO/DEBUG(31): 80900328 23659300 2366700b 2367704b f7ff708b
02-11 03:29:01.244: INFO/DEBUG(31): 80900338 6822efea 23a74905 4479009b 1c2058d3
02-11 03:29:01.254: INFO/DEBUG(31): 80900348 b0024798 46c0bd10 00000034 00000016
02-11 03:29:01.265: INFO/DEBUG(31): 80900358 64636261 6c6c6568 7266206f 6a206d6f
02-11 03:29:01.265: INFO/DEBUG(31): stack:
02-11 03:29:01.274: INFO/DEBUG(31): bee2f778 00000000
02-11 03:29:01.284: INFO/DEBUG(31): bee2f77c afd103f0 /system/lib/libc.so
02-11 03:29:01.284: INFO/DEBUG(31): bee2f780 afd41724 /system/lib/libc.so
02-11 03:29:01.305: INFO/DEBUG(31): bee2f784 000000dc
02-11 03:29:01.305: INFO/DEBUG(31): bee2f788 000013fc
02-11 03:29:01.305: INFO/DEBUG(31): bee2f78c 000001b8
02-11 03:29:01.305: INFO/DEBUG(31): bee2f790 80813b00 /system/lib/libdvm.so
02-11 03:29:01.305: INFO/DEBUG(31): bee2f794 0000ccb0 [heap]
02-11 03:29:01.305: INFO/DEBUG(31): bee2f798 4186bcf4
02-11 03:29:01.305: INFO/DEBUG(31): bee2f79c afd0be39 /system/lib/libc.so
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7a0 00000000
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7a4 b0004998 /system/bin/linker
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7a8 b0014df4
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7ac 80900319 /data/data/cn.itcast.ndk1/lib/libhello.so
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7b0 df002777
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7b4 e3a070ad
02-11 03:29:01.314: INFO/DEBUG(31): #00 bee2f7b8 0000aa50 [heap]
02-11 03:29:01.314: INFO/DEBUG(31): bee2f7bc 8090033b /data/data/cn.itcast.ndk1/lib/libhello.so
02-11 03:29:01.334: INFO/DEBUG(31): #01 bee2f7c0 64636261
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7c4 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7c8 66656766
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7cc 67666567
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7d0 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7d4 66656766
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7d8 67666567
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7dc 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7e0 66656766
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7e4 67666567
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7e8 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7ec 66656766
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7f0 67666567
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7f4 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7f8 66656766
02-11 03:29:01.334: INFO/DEBUG(31): bee2f7fc 67666567
02-11 03:29:01.334: INFO/DEBUG(31): bee2f800 65676665
02-11 03:29:01.334: INFO/DEBUG(31): bee2f804 66656766
说明c语言代码的库挂掉了.
7.需要重启模拟器:
02-11 04:00:33.934: D/dalvikvm(10670): No JNI_OnLoad found in /data/data/cn.itcast.ndk2/lib/libhello.so 0x44f3e910, skipping init
8.c语言中的数组结束是通过\0来标记的故:
char* arr[6] = {'h','e','l','l','o','\0'};//char* arr[5] = {'h','e','l','l','o'}这个会出问题
而:char* arr = "hello";则没有问题,且和上一行效果一样。
9. 使用javah生成.h文件时,
如果在D:\Android\project\ndk\bin\classes中,执行javah com.heima.ndk.ndkActivity无法访问,找不到类文件的话
那就在D:\Android\project\ndk\src中,执行javah com.heima.ndk.ndkActivity,或许能成功
NDK常见错误的更多相关文章
- Android NDK 开发(三)--常见错误锦集合Log的使用【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41826511 Android NDK开发经常因某些因素会出现一些意想不到的错误, ...
- JNI常见错误整理
ndk开发常见错误1. android.mk文件不存在 $ ndk-buildAndroid NDK: Your APP_BUILD_SCRIPT points to an unknown file: ...
- 初识JAVA(二)(送给Java和安卓初学者)----常见错误
博主接着上篇的来讲哦,以后的更新中,博主会出一些练习题,有兴趣的可以做做然后吧代码粘贴到下面,大家可以一起研究学习,一起进步,本篇文章主要讲的是: 一.常见错误 二.连接上篇一起的训练 无论是什么方向 ...
- ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock
ubuntu 常见错误--Could not get lock /var/lib/dpkg/lock 通过终端安装程序sudo apt-get install xxx时出错:E: Could not ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...
- C语言初学者代码中的常见错误与瑕疵(23)
见:C语言初学者代码中的常见错误与瑕疵(23)
- struts2.5框架使用通配符指定方法常见错误
struts2.5框架使用通配符指定方法(常见错误) 在学习struts框架时经常会使用到通配符调用方法,如下: <package name="shop" namespace ...
- .Net常见错误
常见错误 #1: 把引用当做值来用,或者反过来 C++ 和其他很多语言的程序员,习惯了给变量赋值的时候,要么赋单纯的值,要么是现有对象的引用.然而,在C# 中,是值还是引用,是由写这个对象的程序员决定 ...
随机推荐
- JS设计模式之观察者模式
观察者模式,即发布与订阅模式,实现一对多的一种关系模式,当一种对象接受信号时其他所有依赖均有行为.我们在写code的时候总是会去自定义一些事件,这就是观察者常常使用的地方: JS中的观察者模式应用: ...
- eclipse安装
1.下载破解版本 地址:http://www.oyksoft.com/soft/1250.html 2.解压下载包,直接运行eclipse.exe 3.安装过程中如果遇到问题 1).如果遇到erro ...
- ASP.NET MVC WebApi 返回数据类型序列化控制(json)
注:本文为个人学习摘录,原文地址:http://www.cnblogs.com/OpenCoder/p/4628557.html 我们都知道在使用WebApi的时候Controller会自动将Acti ...
- 从A页面跳转到B页面,从B页面按浏览器自带按钮返回到A页面并且刷新页面--手机操作浏览器自带返回并自带刷新
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 前端开发中的一些js小技巧
1.获取某个月的天数 function getDate (year, month) { return new Date(year, month + 1, 0).getDate(); } 2.获取变量类 ...
- javascriptDOM对象之scrollTo()方法,滚动到页面指定位置
scrollTo是一个神奇的方法,常用于篇幅过长的页面,制作一个回顶部的按钮,我这里简单的实现以下 当然没有一个过渡的js效果 scrollTo(xpos,ypos) 参数 描述 xpos 必需.要在 ...
- ajax客户端请求与服务端响应浅谈
AJAX,即Asynchronous Javascript And XML,AJAX本质是在HTTP协议的基础上以异步的方式与服务器进行通信. 所谓的异步,是指某段程序执行不会阻塞其他程序执行,其表现 ...
- 在ueditor编辑器的光标停留处插入内容
业务场景: 首先在ueditor编辑器中插入一段文本,然后我想在文本的某个位置(光标停留处)插入一个字符串,这个字符串是从页面的其他地方选择得来的. 注意,当我们点击ueditor编辑器以外的地方,编 ...
- 安卓平台多个视频叠加演示demo说明
多个音视频编辑演示说明: 第一个-----字幕和视频的叠加: 说明: 把字幕文件中的文字,按照时间叠加到视频上去,形成新的视频. 类似我们看电影时的字幕. 下载地址:http://www.cnblog ...
- centos6.5 安装zabbix
实验说明: 操作系统: CentOS6.5 64位 Web环境: Apache Mysql PHP zabbix版本: LTS 2.2.10 Linux服务器IP: 10.0.0.2 Linux客户端 ...