我遇到构建变体和FCM的问题。
我定义了3个变体:dev,qa,release
dev/qa have applicationIdSuffix '.dev'
release has no suffix
google-services.json 文件正确定义了两个软件包名称,并且我读到google-services插件在构建过程中会自动读取它。
当我启动dev变体时,一切正常。但之后,如果我切换到发布变体并尝试启动该应用程序只是挂起以下跟踪:
xxx中的ANR
原因:意图广播{act = com.google.firebase.INSTANCE_ID_EVENT flg = 0x14 cmp = xxx / com.google.firebase.iid.FirebaseInstanceIdInternalReceiver(has extras)}
Dev变体始终有效,但暂存变量也会在开始时挂起。
可能的相关问题:
Application not responding after adding Firebase
注意:我还测试了调试变体与完全相同的配置阶段变量已经有效。因此Gradle在调试变体方面做了不同的事情,因为没有问题。
任何想法如何解决这个问题?这是因为Android Studio还是gradle中的一些错误配置?在构建应用程序时,同事从未见过这个问题。
我也试图删除android studio并重新安装它,也删除了项目并再次拉动源代码,但我的笔记本电脑仍然出现错误。
感谢。
注意:我重新启动了我的笔记本电脑,并从终端运行干净的组装,现在所有的变种似乎都有效。我注意到有时直接从Android工作室构建时,似乎应用程序有点开始,然后它被删除,然后导致FCM接收器挂起,因为应用程序刚被删除。这是Android studio的一些配置吗?
结论
我没有找到导致此问题的Android Studio / Laptop / Gradle设置的实际原因,但是如果您遇到同样的问题。尝试重新启动计算机,重新克隆应用程序项目可能有所帮助,同时使用干净选项从命令行构建变体也可以帮助而不是使用Android studio构建它。
答案 0 :(得分:0)
确保您已在清单文件中实施这两项服务。
<service android:name="com.test.notification.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="com.test.notification.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
答案 1 :(得分:0)
尝试放
MSET one 1 two 2 three 3 four 4
KEYS *o*
-> 1) "two"
-> 2) "four"
-> 3) "one"
到build.gradle的末尾 和
apply plugin: com.google.gms.google-services
依赖性的顶部
compile com.google.firebase:firebase-messaging:x.x.x