前提・実現したいこと
UnityからGoogleFitのAPIを呼び出したいです。
AndroidStudioでプロジェクトを作成、GoogleFitを扱うコードを記述しAARプラグインとしてビルド、UnityのPlugins/Androidフォルダ以下に置きました。
Unityでプロジェクトを作成、AndroidJavaObjectで該当クラスのインスタンスを作成し呼び出すコードを記述し、実機に転送して実行したところ、Logcatで以下のようなエラーが表示されました。
発生している問題・エラーメッセージ
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/fitness/FitnessOptions; (省略) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.fitness.FitnessOptions" on path: DexPathList[[zip file "/data/app/com.DefaultCompany.GoogleFitUnityTest-2/base.apk"],nativeLibraryDirectories=[/data/app/com.DefaultCompany.GoogleFitUnityTest-2/lib/arm, /data/app/com.DefaultCompany.GoogleFitUnityTest-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) (省略) Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.fitness.FitnessOptions at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 14 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
該当のソースコード
Java
1public class GoogleFitTest { 2 public GoogleFitTest() { 3 // おそらくここの呼び出しでエラーを起こしている 4 FitnessOptions fitnessOptions = FitnessOptions.builder() 5 .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ) 6 .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ) 7 .build(); 8 } 9}
試したこと
Google-Play-Services-Fitnessが実行時に解決出来ていないのだと思い、Google Maven epositoryからplay-services-fitness-19.0.0.aarをダウンロードし、UnityのPlugins/Android 以下に配置してみましたが改善しませんでした。
Plugins/AndroidではなくPlugins/Android/libsに配置も試してみましたが改善しませんでした。
play-services-fitness-19.0.0.aarのUnity設定で「Load on startup」にチェックを入れてみましたが改善しませんでした。
プラグイン側のbuild.gradleに記述されている
dependencies { implementation 'com.google.android.gms:play-services-fitness:19.0.0' }
のimplementation
をapi
やcompile
に変えてみましたが改善しませんでした。
プラグインではなくAPKとしてビルドし実機に転送した時は問題ありませんでした。
補足情報(FW/ツールのバージョンなど)
Unity2019.4.17f1
AndroidStudo3.6.2
テストに使用した実機はNexus5X(Android6.0.1)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。