web-dev-qa-db-ja.com

Android studio; jni.hが見つかりません

Android Studioを使用してGStreamerアプリをビルドしようとしていますが、WindowsのWebサイトのチュートリアルを使用していますが、他の質問ですでに述べたように、チュートリアルは最新ではないようですAndroid Studio。私はEduardo Fernandoによって提案されたチュートリアルに従っています: Gstreamer Android Studio の例ですが、jni.hファイルが見つからないという問題を解決できなかったため、ビルドできません。

> Build command failed.
Error while executing process 
C:\Users\spomerleau\AppData\Local\Android\Sdk\ndk-bundle\ndk-build.cmd with 
arguments {NDK_PROJECT_PATH=null 

APP_BUILD_SCRIPT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\src\main\jni\Android.mk NDK_APPLICATION_MK=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\src\main\jni\Application.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=Android-21 NDK_OUT=C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/Android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\spomerleau\Desktop\Android_GSTreamer\Premade_Test_tut5\Android-tutorial-5\app\build\intermediates\ndkBuild\debug\lib C:/Users/spomerleau/Desktop/Android_GSTreamer/Premade_Test_tut5/Android-tutorial-5/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libtutorial-5.so}
  GStreamer      : [GEN] => gst-build-arm64-v8a/gstreamer_Android.c
  GStreamer      : [COMPILE] => gst-build-arm64-v8a/gstreamer_Android.c
  gst-build-arm64-v8a/gstreamer_Android.c:1:10: fatal error: 'jni.h' file not found
  #include <jni.h>
           ^~~~~~~
  1 error generated.
  make: *** [gst-build-arm64-v8a/gstreamer_Android.o] Error 1

Javahコマンドを実行しましたが、生成された.hでは#includeも見つかりません。

Ndk-buildコマンドを試しましたが、jni.hファイルが見つからないというメッセージが表示されなくなります。

Jni.hファイルをプロジェクトにリンクする方法に関するアドバイスはありますか?

15
sebseb24

これは、Android NDKのr16の変更に伴う問題である可能性があります。これらは、次のように上流で修正されます commit

問題は、NDKがヘッダーファイルを 統合された構造 に移動したため、古い場所にあるヘッダーを予期しているすべてのユーザーを破壊したことです。

6
ystreet00

これは、Android StudioがNDK_r16にアップデート/インストールしているためで、GCCサポートは非​​推奨です。NDK_r15cに戻してみてください。

https://developer.Android.com/ndk/downloads/older_releases.html からr15cをダウンロードし、アプリのNDKの場所を抽出したフォルダーにポイントします。

2

jni.hは、Android ndkパッケージにすでに存在するヘッダーファイルです。存在しない場合は、パッケージを再インストールするか、Webでソースファイルを検索して、非常に簡単に取得して、コンパイラが期待する場所にそのファイルを配置できます

0
Valgrind1691