0

我需要重新启动一个活动来重新加载一个静态库。如果我想调用同一个静态库的一些函数,我的系统就会失败。它仅适用于第一次调用,在它没有找到正确的符号并失败并出现下一个错误之后:

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000100

如果我终止进程并再次启动活动,则再次加载静态库,从那一刻起,我可以调用第二个函数,但如果我想调用库的另一个第三个函数,我必须重复相同的过程来终止处理并启动活动。

要终止活动进程,我使用下一个命令:

android.os.Process.killProcess(android.os.Process.myPid());

我杀死和启动的方法有效,但它没有用,我认为它必须存在更好的解决方案。也许我应该每次在活动中删除并加载静态库,但我不知道它是否可行,我有点迷茫。

4

1 回答 1

1

每项活动都有其独特之处process id,因此我建议您参加一项与您的图书馆有关的临时活动。

现在您的主要活动将startActivityForResult(temporaryact)在临时调用的 onDestroy() 中调用android.os.Process.killProcess(android.os.Process.myPid());

然后在主要活动中onAcitivityResult()再次调用临时活动,依此类推。

这对我有用,愿你也远离它。

于 2012-04-10T10:41:07.453 回答