問題タブ [jnienv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1674 参照

c++ - コンパイルは致命的なエラーで終了しました: abc.h: そのようなファイルまたはディレクトリはありません

このプロジェクトは、Java を使用した Cpp のハンドシェークに関するものです。JNI を使用しているため、Cpp プロジェクトが Cpp プロジェクトの src フォルダーにヘッダーを生成し、ABC.h ファイルと abc.Cpp ファイルを作成するように、すべての必要な構成を作成しました。abc.cppファイルを作成すると、p.threadがそのようなディレクトリが見つからないためにコンパイルに失敗したというエラーが表示されます。このP.threadヘッダーファイルを削除すると、ABC.hファイルが同じフォルダーにあるのにABC.hが見つからないことが示されます。 Cpp ファイルにインクルードしてください。この問題を解決する方法を教えてください。添付の PNG ファイルの下にある JNI の初心者です。詳細を示します。

0 投票する
0 に答える
144 参照

java - JNI Newbyte 配列の実行に時間がかかる

新しいバイトが割り当てられる単純な JNI 呼び出しがあります。NewByteArray() 関数を呼び出しました。しかし、その関数はメモリを割り当てるのに約 30 秒かかります。それを速くする方法、または私は何かが欠けています。使用するSDKはAndroid API level 21 (Android L)

0 投票する
1 に答える
1432 参照

java - Android でネイティブ C/C++ から Java API を呼び出す方法

Android C/C++ ネイティブが Java API を呼び出す例はたくさんあります。ただし、私が読んだこれらの例はすべて、Android Java API が最初にネイティブを呼び出し、次にネイティブが渡された JNI-ENV を使用して他の Java API を呼び出すというものです。

渡された JNI-ENV がなければ、C/C++ はどのようにしてそれを取得できますか? JavaVM を作成することにより、Android で C/C++ ネイティブが Java API を呼び出すことは可能ですか?そうであれば、リンクを共有してください。私は明確な詳細を見つけることができない 1 つのプロジェクト CoCos2dx を経験しました。github.com/nokia-developer/cocos2d-x-qt/tree/master/

前もって感謝します!

0 投票する
0 に答える
293 参照

android - JNI: C から Java コールバックを呼び出すときのセグメンテーション違反

私は Android アプリケーションに利用している C のライブラリです。このライブラリには、時々フラッシュするオーディオ ストリームがあります。これが発生すると、デザインの書き込みコールバック関数が呼び出されます。

私の意図は、その C コールバックに、特定の Java オブジェクトのメソッドを呼び出してもらい、それが strem を処理するようにすることです。

現在、次のようなコードがあります。

コールバック メソッドは次のようになります。

CallVoidMethod でクラッシュが発生しています。そのシグネチャは、渡したオブジェクトによって実装されたインターフェイスです。

これらのオブジェクトへの参照を不適切に取得/保持していると思われますが、それを処理する優れた方法が見つかりません。これをより正しく処理する方法について何かアドバイスはありますか?

0 投票する
0 に答える
997 参照

java - Qt JNI:decodeIndirectRef の無効な間接参照 0x61382e48

AndroidのマイクからオーディオデータをキャプチャするQtプロジェクトを試しています。この記事 : Android AudioRecord exampleを参考にして、Qtコードに書きました。

しかし、この行で int result = mAudioRecorder->callMethod("read", "([BII)I", buffers, offset, size); アプリがクラッシュし、以下のログが出力されました。

このエラーは、JNI 呼び出しが正しくないことが原因であると推測しましたが、理由を見つけることができませんでした。

追加: 0x61382e48バッファ配列のアドレスである ことがわかりました

編集: AudioRecord の Android ガイドはこちらです。

アドバイスを歓迎します。