在初学者中,我已经阅读了这个帖子:Remove firebase analytics from android app completely - 但它没有给我回答我的问题。在我开发的应用程序中,我必须实现推送通知。我想从GCM开始,然后我发现了Firebase。我将它添加到我的项目中,然后实现了它的定价。我决定废弃它并回到GCM。我从代码中删除了所有与Firebase相关的内容,我认为一切都会好起来的。
最近我开始研究该应用程序的优化并注意到调试日志中的某些信息:
07-06 07:03:39.310 13286-13474/com.example.myapp D/FirebaseInstanceId: background sync failed: MISSING_INSTANCEID_SERVICE, retry in 20s
它一直在继续,重试时间翻倍。我不确定它是如何影响我的应用程序的(hovewer,一旦我看到每次发生时都看到大量丢失的帧),但我对Firebase仍然在我的应用程序中感到非常沮丧。只有它的实例位于构建文件夹中,这意味着我自己无法删除它们。我尝试使用配置,我试图将此排除在GCM之外,但仍然没有。
configurations {
all*.exclude group: 'com.google.firebase', module: 'firebase-core'
all*.exclude group: 'com.google.firebase', module: 'firebase-iid'
all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}
在我的build.gradle文件的开头是正确的。不确定它是否重要,但Android Studio告诉我它无法解析符号"排除"在这里。我也尝试将它放在编译GCM中(当然没有全部*),但它没有改变任何东西。
tl; dr我想要摆脱Firebase并且仍然在我的项目中使用GCM。有什么想法吗?
答案 0 :(得分:0)
还会从manifest.xml文件中删除 FirebaseMessagingService 和 InstanceIDReceiver 。
从模块清单文件中删除以下内容。
<service
android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<!-- [END firebase_service] -->
<!-- [START firebase_iid_service] -->
<service
android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
还有 从模块级构建gradle文件中删除依赖项 。
答案 1 :(得分:0)
我遇到了同样的问题。我已经在google搜索过,做了一件小事,现在它可以工作了。
替换依赖项build.gradle(app_name)
dependencies {
....
classpath 'com.google.gms:google-services:1.5.0-beta2'
....
}
和
替换app / build.gradle中的依赖项
dependencies {
....
compile "com.google.android.gms:play-services:8.3.0"
....
}
清理项目并重建项目。
为什么classpath必须是1.5.0-beta2版本?因为此后的版本已包含firebase。
我希望这可以提供帮助。