発生する問題
Unity で PlayFab を Android 環境で実行する際に以下のようなエラーが発生しクラッシュした場合は対処が必要です。
AndroidRuntime FATAL EXCEPTION: Thread-6
AndroidRuntime Process: <Bundle Name>, PID: 32155
AndroidRuntime java.lang.NoClassDefFoundError: Failed resolution of: Lokhttp3/OkHttpClient$Builder;
AndroidRuntime at com.microsoft.xplatcppsdk_internal.HttpRequest.<clinit>(HttpRequest.java:24)
AndroidRuntime Caused by: java.lang.ClassNotFoundException: Didn't find class "okhttp3.OkHttpClient$Builder" on path: DexPathList[[zip file "/data/app/~~IERiCRFwm_VPFsbzhguiaw==/<Bundle Name>-Lfb8xW5gDLcZdsvLTswOBw==/base.apk"],nativeLibraryDirectories=[/data/app/~~IERiCRFwm_VPFsbzhguiaw==/<Bundle Name>-Lfb8xW5gDLcZdsvLTswOBw==/lib/arm64, /data/app/~~IERiCRFwm_VPFsbzhguiaw==/<Bundle Name>-Lfb8xW5gDLcZdsvLTswOBw==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
AndroidRuntime at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
AndroidRuntime at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
AndroidRuntime at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
AndroidRuntime ... 1 more
解決方法
Android の Publishing Settings の『Custom Main Gradle Template』を有効にする事で解消されます。
同じような問題が以下のフォーラムでも上がっています。
フォーラムでも記載がある通り、com.squareup.okhttp3:okhttp:3.10.0
がリンクされていないことが原因です。
上記が依存関係を解決するための Gradle ですが、これを利用するために『Custom Main Gradle Template』を有効にする必要があります。
ドキュメントに記載はないのですが、PlayFab の公式の回答としては『事実上設定が必須』ということのようです。