如何抑制“避免使用捆绑版的 Google Play 服务 SDK”警告?

Posted

技术标签:

【中文标题】如何抑制“避免使用捆绑版的 Google Play 服务 SDK”警告?【英文标题】:How to suppress the "Avoid using bundled version of Google Play services SDK" warning? 【发布时间】:2017-09-10 11:08:50 【问题描述】:

我在我的 android 应用中使用 Google Play 服务,所以我的 build.gradle 中有依赖项。

compile 'com.google.android.gms:play-services:10.2.1'

但 Android Studio 会显示警告:Avoid using bundled version of Google Play services SDK

这个警告是什么意思?我应该如何避免它?我用谷歌搜索了很多,但没有找到太多相关信息。

【问题讨论】:

这是因为 play-services 内部包含很多依赖项.. 看这里.. developers.google.com/android/guides/setup.. 选择您想要使用的任何依赖项而不是全部使用它们。 @ZeroOne 酷。谢谢你快速的回复。能否请您添加问题的答案以便我接受? 我不知道。当我阅读一些教程时,并没有意识到运行 Gradle 时这有多糟糕。我很高兴在我的项目早期发现这一点。 对我来说,我最终不需要任何GooglePlay服务;在阅读 ZeroOne 的评论后,我删除了:Gradle 中的 implementation 'com.google.android.gms:play-services:12.0.1',然后 APK 发布大小减少了 3MB.. 谢谢 【参考方案1】:

在 6.5 之前的 Google Play 服务版本中,您必须将整个 API 包编译到您的应用中。在某些情况下,这样做会使您的应用程序中的方法数量(包括框架 API、库方法和您自己的代码)保持在 65,536 个限制以下变得更加困难。 从 6.5 版开始,您可以有选择地将 Google Play 服务 API 编译到您的应用中

inside compile com.google.android.gms:play-services:12.0.0 包含很多依赖项.. 见下文.. 使用 play-services 可能会导致 dex 问题和繁重的应用程序。只选择你真正依赖的东西:)

Google Play services API    Description in build.gradle

Google+                  com.google.android.gms:play-services-plus:12.0.0
Google Account Login     com.google.android.gms:play-services-auth:12.0.0
Google Actions, 
Base Client Library      com.google.android.gms:play-services-base:12.0.0
Google Address API       com.google.android.gms:play-services-identity:12.0.0
Google Analytics         com.google.android.gms:play-services-analytics:12.0.0
Google Awareness         com.google.android.gms:play-services-awareness:12.0.0
Google Cast              com.google.android.gms:play-services-cast:12.0.0
Google Cloud Messaging   com.google.android.gms:play-services-gcm:12.0.0
Google Drive             com.google.android.gms:play-services-drive:12.0.0
Google Fit               com.google.android.gms:play-services-fitness:12.0.0
Google Location and 
Activity Recognition     com.google.android.gms:play-services-location:12.0.0
Google Maps              com.google.android.gms:play-services-maps:12.0.0
Google Mobile Ads        com.google.android.gms:play-services-ads:12.0.0
Google Places            com.google.android.gms:play-services-places:12.0.0
Mobile Vision            com.google.android.gms:play-services-vision:12.0.0
Google Nearby            com.google.android.gms:play-services-nearby:12.0.0
Google Panorama Viewer   com.google.android.gms:play-services-panorama:12.0.0
Google Play Game         com.google.android.gms:play-services-games:12.0.0
SafetyNet                com.google.android.gms:play-services-safetynet:12.0.0
Android Pay              com.google.android.gms:play-services-wallet:12.0.0
Android Wear             com.google.android.gms:play-services-wearable:12.0.0

火力基地

Firebase API                Description in build.gradle

Analytics                com.google.firebase:firebase-core:12.0.0
Realtime Database        com.google.firebase:firebase-database:12.0.0    
Cloud Firestore          com.google.firebase:firebase-firestore:12.0.0   
Storage                  com.google.firebase:firebase-storage:12.0.0
Crash Reporting          com.google.firebase:firebase-crash:12.0.0  
Authentication           com.google.firebase:firebase-auth:12.0.0    
Cloud Messaging          com.google.firebase:firebase-messaging:12.0.0 
Remote Config            com.google.firebase:firebase-config:12.0.0  
Invites and 
Dynamic Links            com.google.firebase:firebase-invites:12.0.0 
AdMob                    com.google.firebase:firebase-ads:12.0.0 
App Indexing             com.google.firebase:firebase-appindexing:12.0.0 
Performance Monitoring   com.google.firebase:firebase-perf:12.0.0   

编辑 以上版本已被弃用。他们使用单独的版本控制。请参阅下面的链接 Google Play 服务 - https://developers.google.com/android/guides/setup Firebase - https://firebase.google.com/docs/android/setup

【讨论】:

Google Cloud Messaging 已折旧。请改用 Firebase 按摩。 @ZeroOne...如何获取所有依赖项的最新版本?【参考方案2】:

Google Play 服务包含许多单独的 API。 您可以访问所需的任何内容,而不是访问包含所有这些内容的捆绑包。这是更好的方法。见表1Here

【讨论】:

以上是关于如何抑制“避免使用捆绑版的 Google Play 服务 SDK”警告?的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制 shell 脚本错误消息?

如何在 checkstyle 上配置抑制 ParameterNumber?

如何抑制局部回声

如何抑制 ResponseHeader

如何抑制 LLVM 自动合成警告?

如何抑制错误:混合空格和制表符?