解析失败:Lcom/google/android/gms/common/internal/Preconditions;在统一
Failed resolution of: Lcom/google/android/gms/common/internal/Preconditions; in Unity
我正在开发一个 android sdk,它可以在其中获取用户位置。它适用于 android 个应用程序,现在我想让它与 Unity 兼容。
我在使用 FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(context);
时遇到此错误
E/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/Preconditions;
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/Preconditions;
at com.google.android.gms.common.api.Api.<init>(Unknown Source:2)
at com.google.android.gms.location.LocationServices.<clinit>(Unknown Source:22)
at com.google.android.gms.location.LocationServices.getFusedLocationProviderClient(Unknown Source:0)
at in.___.___..LocationManager.startLocationUpdates(LocationManager.java:43)
at in.___.___..LocationManager.startLocation(LocationManager.java:33)
at in.___.___.Main.initialize(Main.java:126)
at in.___.___.Main.registerAPP(Main.java:83)
at in.___.___.init(__.java:76)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.c(Unknown Source:0)
at com.unity3d.player.UnityPlayer$c.handleMessage(Unknown Source:151)
at android.os
我添加了 play-services-location、play-services-base 等但无法解决此错误。
这个问题折腾了2天终于解决了。其实很简单。当你向 unity 添加一个 aar 库时,你必须检查它的依赖关系,它会在页面或 pom 文件中列出。所以当我检查 play-service-location 时,我发现它依赖于 play-service-basement 和 play-service-tasks。所以当我添加那些 aar 包时,一切正常。
您可以在 here
中看到该列表
我正在开发一个 android sdk,它可以在其中获取用户位置。它适用于 android 个应用程序,现在我想让它与 Unity 兼容。
我在使用 FusedLocationProviderClient client = LocationServices.getFusedLocationProviderClient(context);
E/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/Preconditions;
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/common/internal/Preconditions;
at com.google.android.gms.common.api.Api.<init>(Unknown Source:2)
at com.google.android.gms.location.LocationServices.<clinit>(Unknown Source:22)
at com.google.android.gms.location.LocationServices.getFusedLocationProviderClient(Unknown Source:0)
at in.___.___..LocationManager.startLocationUpdates(LocationManager.java:43)
at in.___.___..LocationManager.startLocation(LocationManager.java:33)
at in.___.___.Main.initialize(Main.java:126)
at in.___.___.Main.registerAPP(Main.java:83)
at in.___.___.init(__.java:76)
at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
at com.unity3d.player.UnityPlayer.c(Unknown Source:0)
at com.unity3d.player.UnityPlayer$c.handleMessage(Unknown Source:151)
at android.os
我添加了 play-services-location、play-services-base 等但无法解决此错误。
这个问题折腾了2天终于解决了。其实很简单。当你向 unity 添加一个 aar 库时,你必须检查它的依赖关系,它会在页面或 pom 文件中列出。所以当我检查 play-service-location 时,我发现它依赖于 play-service-basement 和 play-service-tasks。所以当我添加那些 aar 包时,一切正常。
您可以在 here
中看到该列表