2010-07-27 55 views
6

我有一个Android项目,其中包含一个使用JNI从C函数中提取值的类。使用NDK将C函数内置到库中。 C函数返回的值反过来用于初始化类中的变量,当它第一次加载时。这工作正常。不过,我也希望它在缺少库时通过提供默认值来工作。因此,使用这样的事情林:如何在Android应用程序中使用NDK构建的库时捕获UnsatisifiedLinkError?

static native String getstring(); 

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

尽管捕捞,进出口仍然得到一个UnsatisfiedLinkError当我尝试运行此代码与库失踪。为什么我不捕捉异常?我究竟做错了什么?

回答

10

UnsatisfiedLinkError不是Exception的子类。的UnsatisfiedLinkError的层次是:

Throwable->Error->UnsatisfiedLinkError 

您更好的抓UnsatisfiedLinkError如果你要处理它。

+0

啊,这是有道理的。捕获该特定错误并设置默认值可以很好地工作。谢谢! – Eno 2010-07-28 20:17:50

相关问题