繁体   English   中英

Android支持库,编译SDK版本和最低SDK版本

[英]Android support libraries, compile SDK version and minimum SDK version

关于支持库的使用,我有一些一般性问题,但是我找不到很好的资源来回答。

内容:

我正在使用的应用程序的最低SDK目标设置为9。我正在使用通过gradle导入的支持库v4和v7

compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:appcompat-v7:22.2.1'

我还声明了要编译的sdk版本以及使用的最低SDK版本

minSdkVersion 9
compileSdkVersion 22

现在,它将编译并构建一个无错误的apk。 但是,当我将compileSDKVersion更改为19时,会出现很多错误,例如

错误:(2)检索项目的父项时出错:未找到与给定名称'android:TextAppearance.Material.Inverse'相匹配的资源。

告诉我,我正在使用的SDK不包含兼容性库使用的某些资源,我应该改用以前的兼容性库。

问题:

  • 我可以同时使用v4和v7编译的最低SDK版本是什么(或者v4和v7都支持的最低SDK版本是什么)? 有没有办法查看Android支持存储库中的所有可用版本?

  • 将最低SDK版本设置为9并将compileSDKVersion设置为22并使用支持库目标API 22提供的元素是否有风险? 我的意思是:由于缺少类/资源,我可能会获得运行时异常吗?

  • 有没有一种方法可以配置Gradle以显示某些潜在的不兼容性? 我知道有时使用高于最低API的API中存在的方法时会出现编译错误。 但这是否也可以推广到xml(例如主题或资源)?

  • 我知道当(支持)库引用已编译的SDK中不存在的资源时出现编译错误。 有没有办法为最小的SDK也获得类似的警告/错误?

抱歉,如果问题太含糊,请告诉我是否需要一定的精度! 如果您知道有趣的资源可能会回答一部分问题,请不要在此处分享;)

Error:(2) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.

这是因为支持库v22需要API 22。
您无法使用API​​ 19进行编译。

我可以同时使用v4和v7编译的最低SDK版本是什么(或者v4和v7都支持的最低SDK版本是什么)

通常minSdk是库的名称。 v4是api4,appcompat是api7。

有没有办法查看Android支持存储库中的所有可用版本?

例如,您可以在打开aar文件的文件夹androidsdk\\extras\\android\\m2repository\\com\\android\\support检查它。

将最低SDK版本设置为9并将compileSDKVersion设置为22并使用支持库目标API 22提供的元素是否有风险? 我的意思是:由于缺少类/资源,我可能会获得运行时异常吗?

如果您使用的是支持库v22,则为否。

我知道当(支持)库引用已编译的SDK中不存在的资源时出现编译错误。 有没有办法为最小的SDK也获得类似的警告/错误?

不,根据我的经验。
有一条一般规则。

库主版本号是最小编译sdk版本。

它的意思是:

support libraries v21.x.x -> requires API 21 
support libraries v22.x.x -> requires API 22 
support libraries v23.x.x -> requires API 23 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM