1

ここに投稿されたものと同様の質問があります:

Android NDK:ndk-buildがEclipseで.soファイルと新しいlibsフォルダを生成しないのはなぜですか?

...ただし、Mac os ではなく Windows 7 を実行しています。基本的に ndk-build コマンドが実行され、エラーは発生しませんが、.so ファイルは作成されません (また、Windows を使用しているため、.so ではなく .dll が作成されるはずです)。ルート、jni、src フォルダーなどからコマンドを実行しようとしましたが、同じ結果が得られました。cmd は、数秒後にプロンプ​​ターに戻ります。NDK_LOG=1 パラメーターを使用して jni フォルダーから再度実行し、何が起こっているかを確認しました。これは、jni フォルダーで ndk-build を実行した後のログ結果のトランスクリプトの一部です (プラットフォームの特定に成功した後など)...

Android NDK: /workspace/NdkFooActivity/jni で jni/Android.mk を
探しています Android NDK: /workspace/NdkFooActivity で jni/Android.mk を探しています
Android NDK: 見つかりました!
Android NDK: プロジェクト パスが見つかりました: /workspace/NdkFooActivity
Android NDK: 出力パス: /workspace/NdkFooActivity/obj
Android NDK: /cygdrive/c/android-ndk-r8/build/core/default-application.mk を解析しています
Android NDK: /workspace/NdkFooActivity/project.properties で APP_PLATFORM=android-15 が見つかりました
Android NDK: アプリケーション ローカルは不明なプラットフォーム 'android-15' をターゲットにしています
Android NDK: android-14 に切り替えてい
ます Android NDK: ビルド スクリプト /workspace/NdkFooActivity/jni/Android を使用しています.mk
Android NDK: アプリケーション「ローカル」はデバッグ可能ではありません
Android NDK: リリース最適化モードの選択 (アプリはデバッグ不可)
Android NDK: インポート ディレクトリの追加: /cygdrive/c/android-ndk-r8/sources
Android NDK: ABI 'armeabi' 用のアプリケーション 'local' の構築
Android NDK: ターゲットの使用ツールチェーン「arm-linux-androideabi-4.4.3」 for 「armeabi」 ABI
Android NDK: タグ「cxx-stl/system」を持つインポートされたモジュールを探します
Android NDK: Probing /cygdrive/c/android-ndk-r8/sources/ cxx-stl/system/Android.mk
Android NDK: /cygdrive/c/android-ndk-r8/sources/cxx-stl/system にあります
Android NDK: Cygwin 依存ファイル変換スクリプト:

...その後、最後の行に記載されているスクリプトを実行し、終了します。何か案は?ありがとう!

4

3 に答える 3

2

ビルダーをセットアップします。その方法については、次の記事を参照してください。

http://maxters.net/2011/02/android-ndk-builder-for-eclipse-in-windows/

NDK r8 から始まる「小さな」変更があります。Cygwin はもう必要ありません。Cygwin と NDK r8 でネイティブ ライブラリをビルドするときに問題が発生しました。cxx-stl に関するエラー メッセージがいくつかありました...

上記のリンクのほとんどすべてに問題はありませんが、[メイン] タブの [引数] を空白のままにして、[場所] を次のように変更します。

${env_var:ANDROID_NDK_ROOT}/ndk-build.cmd

システム変数 path を使用ANDROID_NDK_ROOTしていますが、ndk-build.cmd へのフル パスを指定できます。また、[環境] タブで変数を設定する必要はありません。

このようにビルダーをセットアップすれば、問題ありません。

Android は Linux OS の上に構築されているため、Windows を使用している場合でも、拡張子が .so の Linux ライブラリを取得できます。

于 2012-06-06T22:57:05.250 に答える
0

NDKビルドシステムは、コンパイルするソースを見つけるためにワイルドカードに依存しています。どこかでパスが間違っていると、ソースが見つからず、何も実行されません。Android.mkを注意深く確認してください。Android.mkとソースツリーの説明を投稿しない限り、これ以上のことは言えません。

于 2012-06-06T22:36:03.210 に答える