Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-从未调用本机全局对象析构函数_Android_C++_Java Native Interface - Fatal编程技术网

Android-从未调用本机全局对象析构函数

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卡上写入日志文件。虽然在加载库时调用构造函数,但在我看来,似乎从未调用析构函数。我希望在两个构造函数调用之间应该有一个析构

我使用经典的System.loadLibrary()方法从静态java块加载共享库。库具有静态分配的全局对象:

class Foo
{
public:
   Foo()
   {
   }

   ~Foo()
   {
      logtofile( "Foo::~Foo() called" );
   }
}


Foo dummy;

全局函数logtofile在SD卡上写入日志文件。虽然在加载库时调用构造函数,但在我看来,似乎从未调用析构函数。我希望在两个构造函数调用之间应该有一个析构函数调用。所以问题是:当调用Foo析构函数时?

Android从不卸载本机库;通常,当系统决定需要它的资源时,应用程序进程会自动终止,并且它会执行一个类似于
kill-9
,从不调用析构函数或Java
finalize()