关于android开发调用本地库时候的异常处理
来源:互联网 发布:域名备案批量查询 编辑:程序博客网 时间:2024/05/19 23:13
发此贴的原因是我尝试搜索资料,没有搜到关于本文问题的解决方案,甚至没人问这个问题(看来我这个初学者的水平果然够低)。
希望本文能帮助到一些初学者吧。
我的毕设项目是开发一个Android上的opencl benchmark。在开发过程中,我发现自己对于System.loadlibrary的异常处理完全不了解,导致开发的app在不支持opencl的手机上运行时,app的launch activity都没有出现就挂了。
加载opencl库的代码:
static { System.loadLibrary("OCLBenchmark");}OCLBenchmark是用NDK编译的库文件名,这个库中的函数调用了libOpenCL.so
异常信息是这样的:
因此,需要增加异常处理的机制。
然后我想当然地把代码改成了这样的:
static {try { System.loadLibrary("OCLBenchmark"); BenchmarkUtil.isOpenCLSupported = true;} catch (Exception exception){ BenchmarkUtil.isOpenCLSupported = false;}}
之后运行仍然出错。
于是我查看文档,发现System.loadLibrary()这个方法抛出的异常是UnsatisfiedLinkError。它继承自LinkageError,LinkageError又继承自Error。
然后代码修改为:
static { try { System.loadLibrary("OCLBenchmark"); BenchmarkUtil.isOpenCLSupported = true; } catch (Error error){ BenchmarkUtil.isOpenCLSupported = false; }}
然后就OK了。
其实问题的答案很简单,但是不注意细节的话,真的要抓狂了。
0 0
- 关于android开发调用本地库时候的异常处理
- 远程调用rpc的时候 远程的异常如何处理
- 关于android.view.inflateException异常的处理
- 关于Android之NetworkOnMainThreadException异常的处理
- android开发中异常的处理
- 关于vfp调用连接服务器(linkServer)异常的处理方法
- 关于repo下载android代码时候错误的处理。
- 关于repo下载android代码时候错误的处理。
- Android 关于没有处理异常导致应用程序崩溃的处理
- 关于java --调用jdbc queryForMap查询时候发生下面异常的说明
- 关于MAPGIS-IMS java工程出图时候出现COperResult : COperResult异常的处理
- 关于Android应用开发的时候内存的问题
- android 调用系统相机拍照的各种异常处理
- Android笔记之开发中处理异常并写入本地log文件
- android开发环境异常处理
- Android开发之JNI调用本地C库专题(一):JNI的使用
- 关于android ui开发处理的问题
- 关于android中对异常的友情提示做处理。
- 千里之行之系统工程方法
- 循环破防图片和知识回顾
- VS2012下Visual Leak Detector(vld)的配置和使用
- Ubuntu 14.10 安装Sublime Text 支持中文输入法 Fcitx
- Easy way to determine virtualization technology
- 关于android开发调用本地库时候的异常处理
- linux驱动之S3C2440看门狗驱动
- 关于gdb调试core dump文件
- 试题总结
- SQLite3源码在Windows及WinCE平台下的编译方法
- DAO层与Service业务逻辑层的解耦实现之Factory工厂模式
- OpenCV学习笔记一 OpenCV 2.49 + Eclipse 配置教程
- 函数strcmp的实现
- 编程珠玑之第二章习题6