execl を使用して、ネイティブ コードから x264 コマンド ライン エンコーダーを実行します。
execl("/bin/sh", "sh", "-c", "/data/data/com.mycompany.myapp/files/components/x264enc5/x264enc5", NULL);
デバイス(Android 4.2.2を搭載したNexus 7)では正常に動作しますが、エミュレーター(4.0.3および4.2.2を試しました)ではログに次のように記録されています:
F/libc ( 783): 0x00000000 の致命的なシグナル 4 (SIGILL) (コード = 268435456)
I/DEBUG ( 34): ** * ** * ** * ** * *
I/DEBUG ( 34): ビルド フィンガープリント: 'generic/sdk/generic:4.0.4/MR1/302030:eng/test-keys'
私/デバッグ (34): pid: 783、tid: 783 >>> /data/data/com.mycompany.myapp/files/components/x264enc5/x264enc5 <<<
I/DEBUG ( 34): シグナル 4 (SIGILL)、コード 1 (ILL_ILLOPC)、障害アドレス 000c3d68
この問題の考えられる理由を知っている人はいますか?