【发布时间】:2014-11-25 13:12:05
【问题描述】:
最近我想研究将我的应用的向后兼容性从 API 16 提高到 14 的可能性。
我尝试了什么:
为了查看可能需要修复的问题,我将清单中的 android:minSdkVersion 更改为 14 并重建了项目。令我惊讶的是,它构建得很好(这有点可疑),所以我将minSdkVersion 设置为1 看看会发生什么。此时,Attribute unused on older versions 类型的清单中出现了一些警告,但在尝试重建项目时它成功完成。我尝试Analyze > Inspect code... 并没有发现这种性质的错误(即使应该有很多)。我还尝试禁用和重新启用过滤器(见图)并重新启动 IntelliJ - 但无济于事。
我的问题:
- 这可能是一个错误,还是我做错了什么?
- 是否有更好的方法来测试向后兼容性?
附加信息:
- 如果重要的话,我正在与其他几个人一起使用代码存储库处理这个项目(我认为我可能下载了一些损坏的设置文件,但我认为我已经排除了这种情况)。
- 我的 IntelliJ 版本是 13.1.4
谢谢!
【问题讨论】:
-
你在用 Gradle 构建吗?
-
只有当 Lint 是 IntelliJ IDEA 的 Android 插件的一部分时,您的方法才有效。我不直接使用 IDEA(仅在其 Android Studio 风格中),所以我不知道 Lint 是否是插件的一部分。
-
@kcoppock - 否定的,只是普通的 IntelliJ(据我所知)。 @CommonsWare - 图像中的选项出现在
Android > Android Lint下,所以我想它是 Android 插件的一部分... -
好的,所以没有 build.gradle 脚本。我的理论是您的 minSdkVersion 可能被 Gradle 脚本覆盖。您可以尝试仅运行 API 检查吗? (分析 > 按名称运行检查... > 在旧版本上调用新方法)。确保检查范围是您的整个项目,并且您没有可能过于严格的文件名过滤器。
-
@kcoppock - 有效:) 感谢您的提示! (我想我只是在“主模块”的范围内运行它)。我仍然不清楚为什么 lint 没有在文件中显示它......这是一个主要的陷阱,不应该编译恕我直言(可能导致崩溃,不是吗?)......:\
标签: android intellij-idea intellij-13