4

私は C++ ライブラリを持っており、それを Android の世界にエクスポートするための JNI コードをいくつか作成しました。JNI インターフェイスを使用する Android アプリも作成しました。

ライブラリを使用するために、すべての *.java および *.h / *.cpp ファイルを Eclipse アプリ プロジェクトにインポートし (適切なフォルダーに)、NDK 用の *.mk ファイルを作成しました。ndk-build でライブラリをコンパイルし、Eclipse でターゲット デバイスにロードしました。アプリは正常に動作します。

ここで、アプリをライブラリから分離したいと思います。そこで、JNI インターフェースの Java ファイルを含む name.jar をコンパイルしてから、C++ 用の ndk-build を使用して libname.so をコンパイルしました。次に、name.jar を newproject/libs に、libname.so を newproject/libs/armeabi に配置します。ライブラリのソース コードなしで作成した "newproject" アプリを考えてみましょう (ソース コードは公開したくありません。.jar と .so だけです)。

その結果、LogCat へのメモリ ダンプを伴うアプリのクラッシュが発生します。System.loadLibrary("name") を静的コンテキストで使用しました。

誰でも私を助けることができますか?

4

1 に答える 1

2

私の手続きはOKでした。問題が見つかりました。私のアプリは lib をロードしていて、C++ コードを実行していました。ちなみに、クラッシュは socket() 呼び出しの早い段階で発生しました。マニフェスト ファイルに INTERNET アクセス許可を設定する必要がありました。

于 2012-09-13T09:28:25.093 に答える