我尝试按照教程进行操作:Push notifications to Xamarin.Android
(iOS部分已经起作用)
但是在构建时出现以下错误:
The “ProcessGoogleServicesJson” task was not given a value for the required parameter “ResStringsPath”. ServiceToolStandard.Android
到目前为止,我有:
>我创建了一个Firebase项目
> Firebase控制台:
>下载了google-services.json文件
>复制旧服务器密钥
> Azure:
>创建了通知中心
>插入旧服务器密钥
> Xamarin Forms App(Android):
> AndroidManifest包名称==包名称firebase项目
>我安装了nuget软件包:Xamarin.GooglePlayServices.Base,Xamarin.Firebase.Messaging和Xamarin.Azure.NotificationHubs.Android
>将google-services.json文件添加到项目中,然后选择Build Action到GoogleServiceJson
>将接收器部分添加到AndroidManifest *
>然后创建类Constants,MyFirebaseIIDService,MyFirebaseMessagingService并编辑MainActivity
之后,教程显示“正在构建项目/运行应用程序…”,然后我得到了错误.
*在这里,我不确定在${applicationId}处填写什么:
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="${applicationId}" />
</intent-filter>
</receiver>
谢谢你的帮助!
解决方法:
因此,我不太确定为什么会收到该错误.但是在将Visual Studio从v15.7.1更新到v15.7.2之后,该错误消失了.解决方案可能是重新启动Visual Studio?在本教程中,它说如果您不能选择Build Action“ GoogleServiceJson”,则必须重新启动.也许您仍然必须重新启动它.
对于android:name =“ ${applicationId}”,我使用了与AndroidManifest中“清单”行中的“包”中的相同.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="3" android:versionName="1.2" package="com.xxxxx.ServiceToolStandard" android:installLocation="auto">
[...]
<application android:label="ServiceToolStandard" android:icon="@drawable/icon">
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" />
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.xxxxx.ServiceToolStandard" />
</intent-filter>
</receiver>
</application>
现在,我可以构建并运行该应用程序了.此外,还可以正确接收来自Azure-“测试发送”的推送通知.