0
JNICALL関数の外部から例外をスローすると、スローされた例外がスレッドをハングするようです。アンドロイドネイティブコードからC++例外をスローするとスレッドがハングする
つまり、JNICALL関数(Javaネイティブ関数)内で直接例外をスローすると、正しく捕捉される可能性があります。 JNICALL関数が呼び出す関数またはメソッドからスローされた場合は、一度呼び出すだけでスレッドがハングします。
私は混乱しており、この問題を抱えている他の人には言及がありません。
私のプロジェクトでは最新の安定版ndkを使用していますが、APP_STLはC++ _ sharedに設定されており、言語stdはgnuC++ 11に設定されています。
ご協力いただければ幸いです。
C++からJavaに戻る前に、すべてのC++例外をキャッチして処理していますか? –
この現象は予期されています。 Java側がC++でthrowしている例外を、describeを呼び出して処理する必要があります。それ以外の場合、JVMは無限にiircを待機します。 – Brandon
私はenv-> ThrowNew経由でjavaに戻す前に、C++の例外をキャッチしているか、しようとしています。コードフローは単にthrowステートメントで停止し、決して戻りません。 – Tomasu