かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Android で Azure Spatial Anchors + MRTK v2.2.0 を使うと DllNotFoundException が出る

adb.exe logcat -s Unity:* でログを見てると以下のようなエラーが出ます。

01-20 17:33:51.818 12729 12750 D Unity   : Unable to load library '/data/app/com.DefaultCompany.MRTKNuGetTest-yCg6ywpRyWRRM6lxBYRoYQ==/lib/arm/libazurespatialanchorsndk.so', native render plugin support disabled: java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "ArImage_getFormat" referenced by "/data/app/com.DefaultCompany.MRTKNuGetTest-yCg6ywpRyWRRM6lxBYRoYQ==/lib/arm/libazurespatialanchorsndk.so"...
01-20 17:33:51.820 12729 12750 E Unity   : Unable to find azurespatialanchorsndk
01-20 17:33:51.835 12729 12750 I Unity   : System.DllNotFoundException: azurespatialanchorsndk
01-20 17:33:51.835 12729 12750 I Unity   :   at (wrapper managed-to-native) Microsoft.Azure.SpatialAnchors.NativeLibrary.ssc_cloud_spatial_anchor_create(intptr&)

各関係するパッケージのバージョンの不一致のせいでおきてます。 とりあえず ARCore XR Plugin の 2.1.2 を使ってたら置きました。解決方法は 2.2.0-preview のほうに上げることです。

動いてるバージョンの組み合わせ。

Window → Package Manager から入れたもの

  • ARFoundation 2.1.4
  • AR Subsystem preview.3 2.2.0
  • ARCore XR Plugin preview.2 - 2.2.0 (最初は 2.1.2 使っててダメだった)

NuGet から入れたもの

  • Microsoft.MixedReality.Toolkit.Foundation 2.2.0
  • Microsoft.MixedReality.Toolkit.Extensions 2.2.0

.unitypackage で入れたもの

まとめ

バージョン合わせ沼辛い。