トップページ > プログラム > 2015年06月09日 > g1ZC80Dv

書き込み順位&時間帯一覧

28 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000011000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net

書き込みレス一覧

★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
798 :デフォルトの名無しさん[]:2015/06/09(火) 17:57:32.76 ID:g1ZC80Dv
JNIでネイティブ関数からJavaメソッドの呼び出しをやろうとしてます。
JNICALLなネイティブ関数からはJavaメソッド呼び出しができるのですが、
pthread_createで作成したスレッドが実行する関数からはJavaメソッドの呼び出しが
失敗します。

1. JNICALLなネイティブ関数でJNIEnvやMethodIDを外部変数に保存。
 pthread_create実行。
2. pthread_createで生成されたスレッドで外部変数のJNIEnvやMethodIDを使用。
 しかし、失敗。JNICALLなネイティブ関数で成功するFindClassですらコケる状況。

JNIEnv等は外部変数で保存しようとも、他のネイティブなスレッドで
使用する事はできないのでしょうか? (NewGlobalRefとかを使えば何とかなる?)
★★Java質問・相談スレッド173★★ [転載禁止]©2ch.net
800 :デフォルトの名無しさん[sage]:2015/06/09(火) 18:58:07.09 ID:g1ZC80Dv
>>799
ドンピシャでした。サンクス。
以下でいけました。

1. JNIEnv他諸々の設定。JavaVMの外部変数へ。pthread_create実行。
2. pthread_createのスレッドで外部変数のJavaVMでAttachCurrentThread。
 JNIEnv他諸々が使えるようになる。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。