我对构建变体和FCM有异议。
我定义了三个变体: dev,qa,release
dev/qa have applicationIdSuffix '.dev'
release has no suffixgoogle-services.json文件有两个正确定义的包名,我看到google服务插件在构建过程中会自动读取它。
当我启动dev变体时,一切都运行得很好。但在此之后,如果我切换到发布变体,并尝试启动该应用程序,只需挂起以下跟踪:
xxx的ANR 原因:广播意图{ act=com.google.firebase.INSTANCE_ID_EVENT flg=0x14 flg=0x14(有附加)}
Dev变体总是工作,但是暂存变体也挂起。
可能的相关问题:
Application not responding after adding Firebase
注意:我还用完全相同的配置暂存变量测试了调试变体,并且它起了作用。所以Gradle在调试变量上做了一些不同的事情,因为这没有问题。
有什么办法解决这个问题吗?这是因为Android还是gradle中的一些错误配置?同事在构建应用程序时从未见过这个问题。
我还试图删除android并重新安装它,也删除了该项目并再次提取源代码,但我的笔记本电脑仍然出现了错误。
谢谢。
注意:我重新启动了我的笔记本电脑,并从终端上运行干净的组装,所有的变体现在似乎都能工作了。我注意到,当直接从Android构建时,应用程序似乎以部分方式启动,然后被删除,这导致FCM接收器挂起,因为应用程序刚刚被删除。这是安卓演播室的配置吗?
结论
没有找到造成这种情况的Android /膝上型计算机/ Gradle设置的实际原因,但如果您遇到相同的问题。尝试重新启动您的计算机,重新克隆应用程序项目可能会有所帮助,还可以在命令行中构建带有clean选项的变体,而不是用Android构建它。
发布于 2017-04-26 13:30:14
确保在清单文件中实现了这两个服务。
<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>发布于 2017-08-23 08:13:07
试着
apply plugin: com.google.gms.google-services到build.gradle的末尾
compile com.google.firebase:firebase-messaging:x.x.x依赖顶部
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.firebase:firebase-messaging:x.x.x'
}
apply plugin: 'com.google.gms.google-services'https://stackoverflow.com/questions/43477280
复制相似问题