Android のネイティブプラグイン(.so ファイル)についての注意事項

高橋 啓治郎 -

Android においてネイティブプラグイン(.so ファイル)を使用していると、一部の機種のみプラグインのロードに失敗する(DllNotFoundException が発生する)という現象に遭うことがあります。

このような現象が発生した場合は、まず次の点についてチェックしてください。

プラグインの名前について

.so ファイルを使用する場合、次のような規則に従っている必要があります。

  • ファイル名は “lib” で始まり “.so” で終わっている。
  • スクリプト側の DllImport では、ファイル名から頭の “lib” と末尾の “.so” を取り除く。

この規則を守っていなくてもロードできることはありますが、Unity のバージョンや Android OS のバージョンによって破綻する可能性があります。基本的には上記の規則を守ってください。

STLPort について

STLPort を使用している場合、一部の機種において cannot locate symbol "__cxa_end_cleanup" referenced by "lib***.so" とエラーになる可能性があります。

この問題の解決方法は、今のところ私達の方では把握できていません。もっとも確実な解決策は、STLPort を使用しない、というものになります。

他にご質問がございましたら、リクエストを送信してください

0 コメント

ログインしてコメントを残してください。
Powered by Zendesk