【发布时间】:2015-07-10 04:47:06
【问题描述】:
我的目标是 Android 19(因为这是我的手机正在运行的)。我想添加一个带有按钮的通知;似乎正确的方法是使用 appcompat-v7.app.NotificationCompat。
但是,当我从 Android 支持存储库修订版 22.2(通过 build.gradle 依赖项)添加 appcompat-v7 时,它包含一个文件 app/build/intermediates/exploded-aar/com.android.support/appcompat-v7 /22.2.0/res/values-v21/values-v21.xml 无法编译,因为它假定目标是 21+。
我尝试删除该文件,但它会重新生成。
似乎没有办法从构建中排除文件。
因此,我需要获取旧版本的支持库或存储库,其中不包含 21 个内容。
我想我可以直接导入所有源代码(并省略 v21 的内容),而不是通过依赖项?我不清楚从哪里开始。 我可以使用 SDK 管理器来获取旧版本的 SDK,但它只提供最新版本的支持库。
【问题讨论】:
-
嗯?始终以最新的稳定 API 和最新的支持库和最新的构建工具为目标...如果您使用来自 API > minSdk 的东西,您应该得到 lint 的警告...如果您没有,那么它应该在所有具有 API 的设备上运行lvl >= minSdk 没有问题
-
添加你的 gradle 配置
-
使用
targetSdkVersion和compiledSdkVersion= 21 解决您的问题 -
我不习惯依赖 Lint,但我已经开始更多地使用它,所以我尝试了碰撞 targetSdkVersion。但是,这仍然会产生相同的错误。
-
“我仍然对针对新 SDK 版本进行编译感到谨慎;每次我更改为新版本时,都会出现问题”——所有这些都是更改您编译的本地 JAR,因为解析类、方法、字段等。生成的 APK 中唯一的实际变化将来自其值发生变化的静态字段,而且这种情况不会经常发生(IOW,我无法说出它曾经有过的任何情况)。我还没有听说任何确认的“某些事情中断”的案例仅更改
compileSdkVersion。如果你有具体的例子,我很想听听。
标签: android android-gradle-plugin android-support-library