2011-07-29 9 views
0

ネイティブオーディオのサンプルを作成して、それを自分のGalaxy Tab 10.1にダウンロードしましたが、動作しません。開始されるように見えます(つまり、ウィンドウの名前が上部に表示されます)。私は誰かがなぜそのアイデアを持っていると思っていますか?おそらくタブでのオーディオサポートに問題がありますか?Android NDKネイティブオーディオの例がクラッシュする

"android_native_app_glue"を使って自分の非常に単純なネイティブアクティビティを作成しようとしましたが、OpenSL呼び出しをしなくてもクラッシュします。実際には、私はLOCAL_LDLIBSに-lOpenSLESを追加して起動クラッシュを引き起こすだけです。リンカフラグを削除すると、クラッシュしません。非常に奇妙で、私はネイティブオーディオサポートに関してタブから欠けているものがあると思いますか?

おかげで、実際には ALF

+1

「クラッシュ」はあまりにも不正確で、問題を理解している人はいないでしょう。プログラムを起動しようとすると、UIエラーメッセージとlogcatログの両方がポストされます。 –

+0

LogCatの出力例を以下に示します。 – ALF

+0

08-01 10:13:55.570:WARN/dalvikvm(6348):threadid = 1:キャッチされない例外(グループ= 0x4016d760)でスレッドが終了する 08-01 10:13:55.580:ERROR/AndroidRuntime(6348):FATAL EXCEPTION :main 08-01 10:13:55.580:ERROR/AndroidRuntime(6348):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.example.native_activity/android.app.NativeActivity}:java.lang.IllegalArgumentException:ネイティブライブラリを読み込めません:/data/data/com.example.native_activity/lib/libnative-activity.so – ALF

答えて

0

は、私がしなければならないすべては、起動時のクラッシュを引き起こすために私LOCAL_LDLIBSに-lOpenSLESを追加することです。リンカフラグを削除すると、クラッシュしません。非常に奇妙で、私はネイティブオーディオサポートに関してタブから欠けているものがあると思いますか?

logcatは/data/data/com.example.native_activity/lib/libnative-activity.soの読み込みに失敗したようです。結果として生じるエラーメッセージを確認するために問題を複製することができなくても、これは、実行時リンカーが参照するシステムライブラリを見つけることができないこと、またはlibnative- activity.so自体、またはlib内の未解決のシンボル、またはその他のもの。

テストする別のデバイスがある場合は、明らかなパスになります。

また、ネイティブオーディオを使用することが知られている他の人からコンパイルされたアプリをテストします。

どちらも可能でない場合は、libnative-activity.soで必要とされるシステムライブラリの名前を見つけるために、readelfまたはobjdump(特にndkインストールのどこかのアンドロイドバージョン)または文字列またはgrepを使用できます。それらがあなたのデバイスに実際に存在するかどうかを確認してください。

+0

ありがとう!私はテストすることができる別のデバイスを持っていないが、同僚と話した後、それはAndroidバージョンの非互換性だと思っている。ネイティブオーディオはAPIレベル9、私のタブはAPIレベル12です(私は思っています)。 APIレベルの互換性を前提としていましたが、そうではありません。正しい場合、このmenas API 2.3デバイスはネイティブオーディオをサポートする必要がありますが、3.1デバイスはネイティブオーディオをサポートしません。本当ですか? – ALF

+0

@ALFそれは3.1から削除されたのではないかと疑いますが、特定のベンダーリリースで不注意に破損する可能性があります。ちょうどあきらめるのではなく、正確な問題を特定しようとしないのはなぜですか? –

+0

他の人が、ライブラリがIO 10.1のタブにないことを発見したようですが、Google CTSスイートで必要と考えています:http://forum.xda-developers.com/archive/index.php/t-1119189 .htmlあなたが持っているものは、消費前の例です。このリンクには、推奨される回避策も含まれています。少し創造性があれば、他の場所からライブラリをロードしてルートを必要としないようにすることができます。 –