JNIコードをまったく含まないかなり大きな共有ライブラリファイル(= 12メガバイト)があります。Android System.loadLibraryがネイティブライブラリをロード中に停止する
System.loadLibrary("some_file")
を呼び出す場合、方法はを返すことはなく、関連する出力は生成されません。また、Windows Taskmanagerは、エミュレータのインスタンスがすべてのCPUパワーを奪うわけではないことを報告します。
私は次のコードでクラスがあります。ここでは
static
{
System.out.println("Trying");
System.loadLibrary("some_file");
System.out.println("Works");
}
がLogCatから与えられた出力です:私は、ライブラリlibsome_file.soを使用してネイティブテストアプリケーションをアップロードした場合
I/System.out(534): Trying
D/dalvikvm(534): Trying to load lib /data/data/app/lib/libsome_file.so 0x40643c20
とこれをエミュレータのシェルから実行すると、アプリケーションが動作します。
System.loadLibraryが行っていることをデバッグする方法はありますか、System.loadLibraryが返されない理由を知っている人はいますか?
ライブラリに他のライブラリが必要な場合は問題が発生する可能性がありますが、ハングするとは思われません。私はあなたが正常に小さなライブラリを試したと仮定します。 –
私はいくつかのndk-samplesを試しました。彼らは完全に動作します。 – foens