彻底从安卓应用中移除Firebase分析

20

我只是为了尝试而在我的应用程序中添加了Firebase分析。 我按照官方指南的步骤进行了操作。现在我已经决定不使用它了。 我撤消了添加它所做的任何操作。(从项目级别和应用程序级别build.gradle中删除条目;从源代码中删除所有用法。)

但是当我的应用程序运行时,我仍然会收到这样的日志:

I/FirebaseInitProvider: FirebaseApp initialization successful

这让我相信我还没有完全删除它。现在这真的是我的一个关注点,因为我的应用程序已经超过了方法计数限制,我不得不启用multidex。

我该如何完全从我的应用程序中删除firebase?

4个回答

27

如果您想彻底删除Firebase,可以通过撤销设置步骤来实现。

  1. 从项目gradle中删除classpath 'com.google.gms:google-services:3.0.0'
  2. 从应用程序build.gradle中删除compile 'com.google.firebase:firebase-core:9.2.0'
  3. 从build.gradle底部删除apply plugin: 'com.google.gms.google-services'
  4. 从您的项目中删除FirebaseService代码。
  5. 从您的项目中删除google-services.json。
  6. 从您的清单中删除Google密钥。
  7. 从您的资源值中删除Google密钥。
  8. 清理项目。
  9. 构建项目。
  10. 从测试设备中删除已安装的应用程序,然后重新安装它。

-- 更新 --

https://dev59.com/g1oU5IYBdhLWcg3wEz6N#37945280

我建议您在应用程序module build.gradle中使用Gradle排除Firebase组,您可以在依赖项中添加以下内容:

compile('com.google.android.gms:play-services-ads:9.0.2') {
    exclude group: 'com.google.firebase', module: 'firebase-common'
}

compile('com.google.android.gms:play-services-gcm:9.0.2') {
    exclude group: 'com.google.firebase', module: 'firebase-common'
}

或者,只需应用全局排除配置(请记住,这应该在任何 Groovy 函数之外),像这样:

configurations {
    all*.exclude group: 'com.google.firebase', module: 'firebase-common'
}

我在我的应用程序中使用了Google Analytics和Maps API。所以现在我不能遵循1、3、5、6和7。 2、4、8、9和10已经得到了解决。 据我记得,在添加Google Analytics和Maps之前,我已经按照所有这些步骤删除了Firebase。 - Kanj Narayan
你是否使用了整个Play服务包,即**compile 'com.google.android.gms:play-services:9.2.0'**? - ישו אוהב אותך
我不知道Groovy语法。我应该在项目级别的Gradle文件还是应用级别的Gradle文件中添加这个代码片段?如果顺序很重要(例如“apply plugin”语句),那么应该在文件的哪个位置添加? - Kanj Narayan
这个有效。不过我还没有完全理解这个问题。在添加这个配置之前,我注意到在app/app.iml中有很多带有各种firebase库的“exclude-folder”和“order-entry”项。每次构建之前我都手动删除那些行。(那些行总是会以某种方式重新出现。)添加了这个配置后,我可以看到在app.iml中添加了更少的firebase行。当我使用更快的电脑时,我会进行更深入的调查。 - Kanj Narayan
在我看来,这是因为Play服务本身包含Firebase核心服务。可能是出于兼容性的原因。那么你可以将此标记为已回答吗? - ישו אוהב אותך

13

添加

configurations {
    all*.exclude group: 'com.google.firebase', module: 'firebase-core'
    all*.exclude group: 'com.google.firebase', module: 'firebase-iid'
}

从app/app.iml中删除所有包含firebase的行(它们不会自动再次添加),并且还从生成的代码和中间输出中删除所有firebase库。

与先前答案相比,这将从APK大小中再次减去87,000字节。

虽然我仍然不明白为什么我必须要添加更多代码来撤消添加某些内容。这可能是构建系统中的错误。

@isnotmenow:非常感谢您指引我朝这个方向。


2
我遇到了同样的问题,我删除了google_services.json文件。删除了firebase依赖项,并且最重要的是在build.gradle(项目:GrowBuds)中删除以下行:
apply plugin: 'com.google.gms.google-services'

0

我之前也遇到了这个问题,经过不懈的努力,我找到了一个合法的解决方案:

  1. 更改包名
    • 将您的工作室从项目级别转换为Android级别
    • 右键单击Android级别并单击“紧凑中间包”
    • 更改包的中间名称
    • 再像第三步一样更改包的最后名称
    • 在gradle文件中更改包名称
  2. 进入Firebase控制台手动添加项目
    • 添加您的新包名称
    • 添加您的SHA1密钥并继续
  3. 同步您的项目,完成!
  • 列表项

2
嗨,请尝试使用清晰的格式使您的答案更易于理解。如果它包含多步计划,请使用带有每个步骤至少一行的编号列表。 - Ruben Helsloot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接