LoginSignup
3
4

More than 5 years have passed since last update.

Unity4.5以降、Android Shared Libraryが使えなくなる問題とその対応

Last updated at Posted at 2015-01-15

Unityを4.5にアップグレードしたところ、今まで使えていた Android Shared Library が突然使えなくなりました。

エラーの内容は様々ですが、主に

  • 実機端末で発生する
  • Unable to find (ライブラリ名) というエラーが出る
  • DllNotFoundExceptionが発生する

というものです。

以下のページに解決のヒントがありました。
DllNotFoundException, prefectly worked before Unity 4.5

まず、Android側の仕様として、Shared Libraryのファイル名は "lib" で始まり、".so" で終わる必要があります。
次に、Unity側の仕様として、DllImportを記述する際には頭の "lib" と終端の ".so" を除いたものを指定する必要があります。
こちらのページにもハッキリと記載がありますね。
Androidのプラグインをビルドする / Building Plugins for Android

Unity4.5より前のバージョンではこの辺りのルールが緩かったようで、

import.cs
[DllImport("libhoge")]

のように記述してもライブラリがインポートされていましたが、Unity4.5以降ではこの辺りのルールが厳格になり、インポートに失敗するようになります。
自分のケースはまさにこれで、

  • ライブラリ名は「libhoge.so」だった
  • [DllImport("libhoge")] と記述していた

のが災いしました。
解決方法としては、前述のルールに沿うように

import.cs
[DllImport("hoge")]

と修正したところ、動くようになりました。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4