2

私はAndroid開発にかなり慣れていないので、かなり古典的な例外があるようです...

E/AndroidRuntime( 2119): FATAL EXCEPTION: main
E/AndroidRuntime( 2119): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.oneloop.Rb/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/app-lib/com.oneloop.Rb-1/libRb.so
E/AndroidRuntime( 2119):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)

私が見たほとんどの回答には、hasCode を true に設定するか、app_dummy を含めるようにすることが含まれますが、どちらも私の問題を解決しません。さらに、コンパイルした apk に lib/armeabi-v7a/libRb.so が含まれていることを (zip に変換して調査することにより) 確認しました。

私は適切なサイズのフレームワーク (多数の静的ライブラリ、opengl、およびビルド済みのミドルウェア ライブラリ) を Android に変換してきました。問題は、logcat がライブラリが失敗した理由に関する情報を提供しないことです。

ここからどこへ行けばいいですか?
どの lib.a が問題なのかを調べるにはどうすればよいですか?
SO の読み込みを妨げている原因をさらに突き止めるには、どのような手法を使用できますか? デバッグで冗長性を有効にする方法はありますか? APK と SO の整合性を検証するために使用できるコマンド ライン アプリはありますか?
この問題を引き起こしている可能性のある他のものは何ですか?

お知らせ下さい。

4

1 に答える 1

0

同様のエラー メッセージが表示されました。これは、私のネイティブ ライブラリがシステム以外のライブラリ (つまり、.../usr/lib にないもの) を使用していることが原因でした。私の場合は gnustl_shared です。Java で静的コード ブロックを作成して、そのようなライブラリを最初にロードする必要があります。

System.loadLibrary("gnustl_shared");

ロードできないアプリのライブラリは libRb.so です。リンクする必要がある他のライブラリを見つけて、最初にロードします。

于 2013-08-19T22:28:51.573 に答える