android-最大限度地提高Google Play服务的向后兼容性
作者:互联网
根据Google Play服务的建议,可以维持Android应用最广泛的向后兼容性的推荐做法是什么?
使用Android Studio的开发者实现文档指示针对v5进行编译.
编译’com.google.android.gms:play-services:5. ‘我使用的可用下载似乎最终使用的版本是5208000.这时,在测试应用程序时出现错误和警告返回:
W/GooglePlayServicesUtil Google Play services out of date. Requires 5208000 but found 5089036
E/GooglePlayServicesUtil GooglePlayServices not available due to error 2
不过,我依赖Google Play服务的Admob似乎可以正常运行.如果您遵循Google的建议来调用isGooglePlayServicesAvailable()和GooglePlayServicesUtil.getErrorDialog(),则系统会告知用户该应用程序需要升级,然后升级到没有可用更新的商店.
在其他地方,保持向后兼容性意味着要根据支持所需功能的最旧的API版本进行编译.因此,我尝试使用v4编译’com.google.android.gms:play-services:4. ‘产生了另一个错误:
E/GooglePlayServicesUtil﹕ The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.
到处搜索表明这是错误的报告,可以忽略.
如果我针对较新的API版本进行编译,而该版本在设备上不存在,那么一切正常吗?还是我必须诱使用户升级?相对于较旧的API版本进行编译,并假定设备与设备上运行的较新版本具有正确的向后兼容性,是否更好?
解决方法:
我是可以选择依赖于Google Play服务的SDK的开发者,正如您所提到的,我的方法一直是针对包含我需要的API的最旧版本的Google Play服务进行编译,以便下游客户端能够陷入这样的问题.
如果您需要的API在v4中可用,则可以安全地针对com.google.android.gms:play-services:4进行编译. ,并按照Google的指示向用户显示升级提示.仅当用户运行的是v4的较旧版本或以某种方式仍在v3上运行时,用户才会看到升级对话框.无论哪种情况,升级对话框都应正确地将他们引导到Play商店,在那里确实会有可用的升级.
如果您需要的API仅在v5中可用,请不要使用通配符版本(即5.).您应该针对可能会广泛使用的旧版本进行编译,例如com.google.android.gms:play-services:5.0.89.使用通配符意味着您将在Android SDK管理器中安装的最新版本的Google Play服务上进行编译,无论您使用的是哪种计算机/环境,在我看来这都是错的-我不会不管是不是由Google在构建该库,我想确切地知道我正在将其编译到我的应用程序中.
此外,使用通配符,如果您始终使SDK管理器保持更新,则每当编译应用的发行版本然后将其推送到Google Play时,您可能只是针对不广泛使用的Play服务版本发布了应用,甚至更糟-甚至还不能在每台设备上下载,在这种情况下,用户会得到对话框而无法升级,就像您在开发过程中看到的那样.
标签:google-play-services,android 来源: https://codeday.me/bug/20191121/2050519.html