質問: Calendar.getInstance(); format.format("%1$04d-%2$02d-%3$02d %4$02d:%5$02d:%6$02d", cal.get(Calendar.YEAR)+1000, cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); return format.toString(); // return "abcdef"; } } public String getNow2() { // return "abcdef"; return stringFromJNI(); // C言語の関数 } } ``` ### 試したこと 問題解決のためにどう攻めればよいかわからずいきずまってしまいました。 jarファイルの中にsoファイルを含める方法を調べるか、別の方法があるのか? また、 http://qiita.com/hIDDEN_xv/items/177ac7ba756afde6ddfe を参考にXamarinのプロジェクトの中に直接c言語の関数を組み込む方法もある程度理解はしていますが、最終的にJNIの中からXamarinの中の関数を呼ぶ必要が出てきそう(UnityでいうところのUnitySendMessage)でその方法がわからずいきずまっています。 ### 補足情報(言語/FW/ツール等のバージョンなど) Xamarin 6.3(build 864) Mac Note Pro OS X Yosemite(10.10.5)
回答: jar ファイルの中に so ファイルを含んでも呼び出す事は出来ません。 loadLibrary はシステムのディスク上にあるファイルしか読み込めません。手で配置するか、jar 起動時に jar ファイルから getResource で取り出し、動いている端末上のディスクに保存、その後 loadLibrary する必要があります。 jar へ so を含める方法については調べるとすぐ出て来ると思います。