根据主题建议,当我尝试更新我的应用中使用的Google Play Services SDK版本时(从5.0.89
到9.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的重大更新。这就提出了主题中提出的问题。
答案 0 :(得分:1)
根据Picking your compileSdkVersion, minSdkVerison, and targetSdkVersion blog post:
应该强调的是,更改compileSdkVersion 不会改变运行时行为。
因此强烈建议您始终使用最新的SDK进行编译。您将获得对现有代码进行新编译检查的所有好处,避免新弃用的API,并准备好使用新的的API。
请注意,如果您使用支持库,则使用最新的支持库版本需要使用最新的SDK进行编译。 例如,要使用23.1.1支持库,您必须具有至少23 的compileSdkVersion(这些第一个数字需要匹配!)。
所以请始终使用compileSdkVersion的最新版本