Android-从未调用本机全局对象析构函数
我使用经典的System.loadLibrary()方法从静态java块加载共享库。库具有静态分配的全局对象:Android-从未调用本机全局对象析构函数,android,c++,java-native-interface,Android,C++,Java Native Interface,我使用经典的System.loadLibrary()方法从静态java块加载共享库。库具有静态分配的全局对象: class Foo { public: Foo() { } ~Foo() { logtofile( "Foo::~Foo() called" ); } } Foo dummy; 全局函数logtofile在SD卡上写入日志文件。虽然在加载库时调用构造函数,但在我看来,似乎从未调用析构函数。我希望在两个构造函数调用之间应该有一个析构
class Foo
{
public:
Foo()
{
}
~Foo()
{
logtofile( "Foo::~Foo() called" );
}
}
Foo dummy;
全局函数logtofile在SD卡上写入日志文件。虽然在加载库时调用构造函数,但在我看来,似乎从未调用析构函数。我希望在两个构造函数调用之间应该有一个析构函数调用。所以问题是:当调用Foo析构函数时?Android从不卸载本机库;通常,当系统决定需要它的资源时,应用程序进程会自动终止,并且它会执行一个类似于
kill-9
,从不调用析构函数或Javafinalize()