我有构建变体和FCM的问题。
我已经定义了3个变体:开发,QA,发行
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.iid.firebaseinstanceInstanceIntanceInternalReceiver(extras(}
( >
dev变体始终工作,但登台变体也悬挂在开始。
可能的相关问题:
添加firebase后不响应的应用
注意:我还测试了具有完全相同的配置阶段变体具有并且起作用的调试变体。因此,Gradle在调试变体中做一些不同的事情,因为这没有问题。
有什么想法如何解决?这是因为Android Studio还是Gradle中的某些错误配置?同事在构建应用程序时从未见过这个问题。
我还试图删除Android Studio并重新安装它,还删除了项目并再次拉了源,但是我的笔记本电脑仍然发生了错误。
谢谢。
注意:我重新启动了笔记本电脑,并从终端组装干净,现在所有的变体似乎都起作用。我注意到有时候,当直接从Android Studio构建时,该应用程序似乎有点启动部分,然后将其删除,从而导致FCM接收器挂断,因为该应用程序刚刚被删除。这是Android Studio的某些配置吗?
结论
找不到导致此原因的Android Studio/笔记本电脑/Gradle设置的实际原因,但是如果您遇到同样的问题。尝试重新启动计算机,重新关闭应用程序项目可能会有所帮助,还可以从命令线上构建变体,也可以使用Android Studio来帮助它。
确保您已经在清单文件中实现了这两个服务。
<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>
尝试放置
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'