JNI开发中的常见问题 1、 C文法声明与java中native方法声明,不对应时,报如下异常: java.lang.IllegalStateException: Could not execute method of the activity
at android.view.View$1.onClick(View.java:2144)
at android.view.View.performClick(View.java:2485)
错误原因: 注意方法名称的拼写: Java_包名_类名_方法名(不能写错,避免写错需要使用javah生成,如何生成看博客Android中JNI开发的入门知识:一 )
2、加载库文件,加载不到,会抛异常: Caused by: java.lang.UnsatisfiedLinkError: : findLCouldn't load libhelloibrary returned null
出错代码在:System.loadLibrary("hello");
解决方案:在loadLibrary 加载so库文件时,文件名前面的lib这三个字母去掉。
3、so 文件与模拟器平如不匹配,会抛异常: Caused by: java.lang.UnsatisfiedLinkError: Couldn't load libhello: findLibrary returned null
出错原因,编译出来的 so 文件,默认仅arm 的CPU而模拟器是intel的cpu
解决方案:编译出支持intel CPU的库文件。配置Application.mk文件的内容