java 调用 库文件错误查找方法

第一步首先找到 backtrace:keyword,然后找到都应的库文件 出错的地方 pc 0000088b  /system/lib/libNDK_04.so (SayHello+98)。

08-13 17:08:28.041 I/DEBUG   (  163): backtrace:

08-13 17:08:28.041 I/DEBUG   (  163):     #00  pc 00021fc0  /system/lib/libc.so (tgkill+12)

08-13 17:08:28.041 I/DEBUG   (  163):     #01  pc 00013081  /system/lib/libc.so (pthread_kill+48)

08-13 17:08:28.041 I/DEBUG   (  163):     #02  pc 00013295  /system/lib/libc.so (raise+10)

08-13 17:08:28.041 I/DEBUG   (  163):     #03  pc 00011fc9  /system/lib/libc.so

08-13 17:08:28.041 I/DEBUG   (  163):     #04  pc 00021874  /system/lib/libc.so (abort+4)

08-13 17:08:28.041 I/DEBUG   (  163):     #05  pc 0004b11b  /system/lib/libdvm.so (dvmAbort+78)

08-13 17:08:28.041 I/DEBUG   (  163):     #06  pc 0002d454  /system/lib/libdvm.so (IndirectRefTable::get(void*) const+252)

08-13 17:08:28.041 I/DEBUG   (  163):     #07  pc 0004f9b7  /system/lib/libdvm.so (dvmDecodeIndirectRef(Thread*, _jobject*)+30)

08-13 17:08:28.041 I/DEBUG   (  163):     #08  pc 00051b75  /system/lib/libdvm.so

08-13 17:08:28.041 I/DEBUG   (  163):     #09  pc 0000088b  /system/lib/libNDK_04.so (SayHello+98)

第二步

arm-linux-androideabi-addr2line -C  -f -e  out/target/product/ndp959/symbols/system/lib/libNDK_04.so  0000088b

第三步

得到:

/home/hlwang/tian/Tshark/ndp959/development/samples/NDK_04/jni/Provider.c:118

定位到库文件的那一行出错。

第四步

慢慢改吧。

一些细节能够參考:

http://doc.okbase.net/xyang81/archive/121689.html

http://blog.sina.com.cn/s/blog_702c2db50102vc2h.html

http://blog.csdn.net/lubeijing2008xu/article/details/37569809

http://blog.chinaunix.net/uid-58110-id-2733429.html

时间: 2024-07-29 14:27:48

java 调用 库文件错误查找方法的相关文章

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

Java逐行读取文件有多少种方法?

如果每个线程使用的变量都是其它线程不会读取或修改的,那么就不存在一致性问题.同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题.否则,将会出现不一致性问题.为了解决数据不一致问题,必须引入某些机制使线程间同步. 当变量修改时间多于一个存储器访问周期,同时读.写操作又相互交替时,潜在的不一致性就会出现.如下图所示: 此时,线程B读取到的数据是错误的.使用一把锁能够解决上述问题: 下面介绍线程的三种同步机制: 1.互斥量pthread_mutex_t 互斥量就是锁,对某段临界区进行加锁

C语言头文件、库文件的查找路径

在 程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include    但是这两种形式是有区别的:使用尖括号表

使用ZjDroid时出现了R.java不存在的错误解决方法

ZjDroid是什么? 请看这篇文章: Android动态逆向分析工具ZjDroid--脱壳神器 今天第一次使用这个的时候出现了下图所示的错误: 提示:import com.android.reverse.R;没有这个类 之后clean了之后再从新build还是没有出现,gen文件夹下依然没有R.java这个文件. 之后选择Android tools 选择fix project properties之后还是没有效果. 试了一天仍然没有解决,之后我跟新了一下Android SDK tools,之前

oracle 库文件解决的方法 bad ELF interpreter: No such file or directory

今天是2014-05-27,今天遇到一个lib问题,再次记录一下.这是一个案例,更是一种解决该问题的方法过程. 当我们在使用sqlplus 登陆unix数据库的时候,有可能出现类似:xxxxxx bad ELF interpreter: No such file or directory的问题.该问题的解决办法也是lib的问题.正常情况例如以下: [[email protected] ~]# su - oracle [[email protected] ~]$ ldd `which sqlplu

java调用so文件

java调用so文件 调用方法主要是是使用jdk自带的jni来调用,思路如下: 新建java对象,实现方法TestNative.java为 public native String XXX(); 使用dos命令来编译该类名,javah 包名.TestNative,得到.h文件,然后根据.h文件自己编写.c文件,在该c文件中调用需要调用的接口. 可分为c和c++,将调用形式分为两种,数据参数格式转化也分为两种,具体例子如:env->XXX(参数),这是c++,c是 (*env)->XXX(env

Java读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb

Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法

原来使用Win7的32位系统,进行C#工程的开发,后来重装系统,换成了win7的64位系统 调试原来的工程,由于在其中引用了"SQLite"的32位的dll,导致在64为位下程序无法运行(但是编译可以通过) 后来通过修改工程文件(.csproj),在其中设置引用的条件,解决了问题 打开引用了SQLite的工程(例如叫做info)的工程文件(info.csproj),找到对SQLite引用的语句,类似如下的代码 代码如下: <Reference Include="Syst

JNA调用库文件

最近项目中要集成厂商的卡口摄像头,需要通过jna调用库函数接收卡口相机抓拍的过车数据.本文记录了Java调用C语言动态库(jna)的调用方式.回调函数.结构体等. JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架,主要解决jni调用其他语言繁琐的步骤.JNI是Java Native Interface的缩写,它提供了若干的api实现了Java和其他语言的通信(主要是c&c++). jna 官方github:https://github.com/j