我有一个android项目,其中包含一个使用JNI从C函数中提取值的类。C函数使用ndk构建到一个库中。从C函数返回的值依次用于在类首次加载时初始化类内的变量。这个很好用。但是,我还希望在缺少库时通过提供默认值来工作。所以我用这样的方法:
static native String getstring();
static {
try {
System.loadLibrary("library");
NAME = getstring();
}
catch (Exception e) {
NAME = "Default";
}
}
尽管有了捕获,但当我尝试在缺少库的情况下运行此代码时,仍然会得到一个不满意的链接错误。为什么我没有抓住例外?我做错什么了?