2012-04-10 13 views
0

スタティックライブラリを再ロードするために、アクティビティを再起動する必要があります。私が同じ静的ライブラリのいくつかの関数を呼び出す場合、私のシステムは失敗します。それだけで、それが正しいシンボルを見つけられません後、最初の呼び出しで動作し、次のエラーで失敗します。アクティビティを再起動してスタティックライブラリを再ロードする方法は?

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

私はプロセスを強制終了し、再び活動を開始した場合、静的ライブラリが再びロードされ、以来、今度は2番目の関数を呼び出すことができますが、ライブラリの別の3番目の関数を呼び出す場合は、同じプロセスを繰り返してプロセスを終了し、アクティビティを起動する必要があります。私は、次のコマンドを使用し、活動プロセス殺すために

:作品を殺すし、起動する

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

は私の方法を、それは有用ではありませんが、私はそれがより良い解決策を存在していると思います。おそらく、私はアクティビティで毎回静的ライブラリを削除して読み込むべきですが、それがポーズできるかどうかわかりません。少し失われます。

答えて

1

すべてのアクティビティには固有のprocess idがありますので、あなたのライブラリを扱う一時的なアクティビティをお勧めします。

今、あなたの主な活動は、一時的なコールのonDestroy()でandroid.os.Process.killProcess(android.os.Process.myPid());

メイン活動onAcitivityResult()呼び出し、一時活動で再びなどstartActivityForResult(temporaryact)を呼び出すとします。

これは私のために働いた、あなたもそれで離れてください。

+0

今、私のライブラリにいくつかの呼び出しをリンクすることができます。私は私の機能を管理するためにonActivityResult(int requestCode、int resultCode、Intent data)を使っていますが、私はちょうどステップを進めました。 –

関連する問題