每个Google Play Services SDK版本都有推荐的compileSdkVersion吗?

时间:2016-08-03 03:58:01

标签: android google-play-services

根据主题建议,当我尝试更新我的应用中使用的Google Play Services SDK版本时(从5.0.899.2.0):

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

会出现大量错误,如下所示:

> .../app/build/intermediates/res/merged/debug/values-v21/values-v21.xml
> 
> Error:(13) Error retrieving parent for item: No resource found that
> matches the given name 'android:TextAppearance.Material.Inverse'.
> 
> Error:(15) Error retrieving parent for item: No resource found that
> matches the given name
> 'android:TextAppearance.Material.Large.Inverse'.
> 
> ...

And:
> .../com.android.support/appcompat-v7/23.0.0/res/values-v21/values-v21.xml
> 
> Error:(82, 5) No resource found that matches the given name: attr
> 'android:colorAccent'.

> Error:(82, 5) No resource found that matches the given name: attr 'android:colorButtonNormal'.
> ...

我碰巧通过提升项目的compileSdkVersion来修复它们。然后我尝试选择性地只编译我项目中需要的SDK,即:

compile 'com.google.android.gms:play-services-gcm:9.2.0'
compile 'com.google.android.gms:play-services-analytics:9.2.0'
compile 'com.google.android.gms:play-services-ads:9.2.0'

通过此设置,我可以保留原始compileSdkVersion,即19,并且构建和(似乎?)运行应用程序没有问题。

然而,这让我想知道是否会有任何潜在的问题,因为有关这些SDK的重大更新。这就提出了主题中提出的问题。

1 个答案:

答案 0 :(得分:1)

根据Picking your compileSdkVersion, minSdkVerison, and targetSdkVersion blog post

  

应该强调的是,更改compileSdkVersion 不会改变运行时行为。

     

因此强烈建议您始终使用最新的SDK进行编译。您将获得对现有代码进行新编译检查的所有好处,避免新弃用的API,并准备好使用新的的API。

     

请注意,如果您使用支持库,则使用最新的支持库版本需要使用最新的SDK进行编译。 例如,要使用23.1.1支持库,您必须具有至少23 的compileSdkVersion(这些第一个数字需要匹配!)。

所以请始终使用compileSdkVersion的最新版本