問題のコードは、Javaとネイティブコード間のJNIインターフェイスです。hファイルはjavahユーティリティによって作成されますが、cppファイルは人間によって作成されます。
Javaパーツの名前が変更された場合、javahは、必要に応じて、対応する名前の関数プロトタイプを生成します。ただし、cppファイルの関数の名前も変更されていることを確認するものはありません。すべて通常どおりにコンパイルされます。この問題は、Javaコードが実行時にネイティブAPIを呼び出す場合にのみ発生します。
コンパイル中にjavahによって生成されたhファイルとhumanによって生成された実装cppファイルの間の不一致をどのようにキャッチできますか?