問題タブ [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 投票する
4 に答える
804 参照

android - JNI がメモリ レベルでどのように機能するか

.so ファイルをロードし、.so ファイルからの結果を出力する Java ファイルがあります。.so ファイルのソース コードがありません。メモリ構造で .so の結果がどのようにロードされ、この Java クラスが .so によって生成された結果を読み取り、それらを出力する場所を誰かが知ることができますか??

0 投票する
2 に答える
677 参照

java - JNI CコードからCライブラリにvoid **を渡す方法は?

1) image_api.h は次のメソッドを定義します - int process_image(const char *svgData, void **mapData) ;

2) 次に、このメソッドを呼び出して、image_api.so ファイルからロードされる process_image に適切な値を渡す必要があります。

-- JNI C ラッパー コードで void** のインスタンスを作成するための正しいアプローチは何ですか?

3)

////////////

メソッドのシグネチャが一致しないため、process_image の呼び出し中に UnsatisfiedLinkError に直面しています

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

android - JNI: NewStringUTF 内部例外をキャッチ

私の JNI コードはchar* src、外部ソースから を受け取り、それをStringusingjstring jStr = env->NewStringUTF(src)に変換し、結果jStrを上位の Java レイヤーに渡します。

一部の入力src値によって、次のランタイム エラーが発生します ( への呼び出し内NewStringUTF)。

私が使用したメソッドはどれも、このNewStringUTFエラー/例外を「キャッチ」できませんでした:

  • if (env->ExceptionCheck() == JNI_TRUE)通話後に配置しNewStringUTFます。
  • if (env->ExceptionOccurred())通話後に配置しNewStringUTFます。
  • NewStringUTFへの呼び出しをtry...catchブロックで境界付けます。

注:質問は、例外をキャッチすることに焦点を当てています(そして、その影響を制御することによって、アプリケーションをクラッシュさせません)。必ずしもそれを解決することではありません (役に立つかもしれませんが)。

私はAndroid Studio v2.3.3とNDK v15.2(最新のもの)を使用しています。

どうぞよろしくお願いいたします。