如何抑制“避免使用捆绑版的 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”警告?的主要内容,如果未能解决你的问题,请参考以下文章