如何在Android应用程序中使用NDK构建的库时捕获UnsatisifiedLinkError?

前端之家收集整理的这篇文章主要介绍了如何在Android应用程序中使用NDK构建的库时捕获UnsatisifiedLinkError?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Android项目,其中包含一个使用JNI从C函数提取值的类.使用NDK将C函数内置到库中.从C函数返回的值又用于在类首次加载时初始化类中的变量.这很好用.但是,我还希望它在缺少库时通过提供默认值来工作.所以我使用这样的东西:
static native String getstring();

static {
        try {
                System.loadLibrary("library");
                NAME = getstring();
        }
        catch (Exception e) {
                NAME = "Default";
        }
}

尽管有这个问题,但当我尝试运行此代码并且缺少库时,我仍然得到一个UnsatisfiedLinkError.为什么我没有抓住异常?我究竟做错了什么?

解决方法

UnsatisfiedLinkError不是Exception的子类. UnsatisfiedLinkError的层次结构是:
Throwable->Error->UnsatisfiedLinkError

如果要处理它,最好捕获UnsatisfiedLinkError.

猜你在找的Android相关文章