我的项目的主要目标是创建一个Unity插件,该插件将能够使用Google Fitness步骤计数器API.它必须提供以下几项功能:获取每日步数,获取总步数,在Google帐户中保存步数,最后在步数达到指定值时发送最重要和最困难的发送通知.
我决定制作一个带有运行后台服务的android插件,它可以发送上面提到的那些通知,但是在这个项目的最开始我遇到了一个问题.Google服务初始化存在问题,当我在原生Android应用程序中使用它时,它工作得很好,但是当我尝试在Unity中使用它作为android库时,它总是失败.
logcat错误:
06-05 13:49:27.991 15144-15144/? E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: 'R.string.google_app_id' for initializing Google services. Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin.
06-05 13:49:27.991 15144-15144/? E/GMPM: Scheduler not set. Not logging error/warn.
06-05 13:49:28.005 15144-15158/? E/GMPM: Uploading is not possible. App measurement disabled
Run Code Online (Sandbox Code Playgroud)
我认为这个问题的关键可能是以某种方式将Google Developers控制台"google-services.json"文件中生成的数据(appIds,SHA等)提供给Unity,但是从android studio生成的.aar库包含我认为它应该是res/values/strings文件中的那些信息.
我正在测试许多可能的解决方案,包括:
从unity导出android项目并将我的库模块添加到它
将我的库分别作为.jar文件和"google-services.json"提供
在res/values/strings文件中直接在Unity中提供必要的数据
将其添加到导出的项目中
结束了与我上面提到的相同的错误.
我做错了什么,或者可能有一个完全不同的方法解决这个问题?
编辑:
来自Unity的Android Manifest(插件/ Android):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="<UNITY APP PACKAGE NAME>" android:versionName="1.0" android:versionCode="1" android:installLocation="preferExternal">
<supports-screens …Run Code Online (Sandbox Code Playgroud) android google-api unity-game-engine google-play-services google-fit