解析失败: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

中看到该列表