1. 程式人生 > >進行JNI編譯時出現的問題總結

進行JNI編譯時出現的問題總結

今天進行jni編譯生成.h檔案時出現報錯

java -jni
錯誤: 編碼GBK的不可對映字元
什麼情況?我的整個工程所有的檔案都是UTF-8編碼的啊,怎麼會出現GBK呢?

出現這種錯誤的原因是由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding引數指定我們的JAVA源程式的編碼格式,則javac.exe首先獲得我們作業系統預設採用的編碼格式。
在我的Windows上進行java編譯時預設用GBK編碼編譯的。所以要解決這個問題,只需要指定編碼就可以了

修改jni命令如下

解決方法:應該使用-encoding引數指明編碼方式,如:
javah -jni -encoding UTF-8 com.example.XXXX.XXXX.MainActivity

問題解決!