4

Android の JNI (Java Native Interface) ライブラリで C++ 例外を使用する方法はありますか?

編集: JNI ライブラリに完全に内部的な C++ 例外処理について話しています。つまり、例外はライブラリ内でスローおよびキャッチされ、ライブラリをエスケープすることはありません。

Android のドキュメント (docs/CPLUSPLUS-SUPPORT.html) によると、デフォルトではなく C++ ランタイムとして「GNU libstdc++」を使用した場合にのみ、例外がサポートされます。

問題は、ドキュメントには、プログラムのすべての部分で同じ C++ ランタイムを使用する必要があることも記載されていることです。

「すべてのコードが依存する単一の C++ ランタイムのみを選択できます。異なる C++ ランタイムに対してコンパイルされた共有ライブラリを混在させることはできません。」

私の解釈によれば、これは、Dalvik (Android 上の Java VM) と同じ C++ ランタイムを使用せざるを得ないことを意味します。

では、Dalvik が「GNU libstdc++」を使用しない場合でも、JNI ライブラリで例外を使用できる方法はありますか?

Dalvik はどの C++ ランタイムに対してコンパイルされますか?

編集:どのJavaアプリが私のJNIライブラリを使用していても、私が制御できない他のJNIライブラリも使用する可能性があると想定する必要があります。それは何らかの形で私の選択肢を制限しますか?

4

1 に答える 1