Android工作室检查与API的兼容性< 19

时间:2015-10-01 07:21:47

标签: android android-studio


我有一个具有此设置的应用程序项目:

android {
  compileSdkVersion 21
  buildToolsVersion '19.1.0'

  defaultConfig {
    minSdkVersion 10
    targetSdkVersion 19
  }
  buildTypes {
    release {

    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
  }
}

我有一个带有try-with资源的块,如果Build.SDK小于API 19,则不使用检查。 我没有从IDE那里得到任何关于它的错误。 我使用目标SDK Android 4.1.2在模拟器上运行了一个程序,一切都很好,也在Android 4.2.2设备上进行了检查。程序调用此代码,使用调试器进行检查。 一切都顺利吗?我希望IDE可能存在兼容性错误,但是没有。

如果我尝试在IDE中使用相同的minVersionSdk 10创建一个新项目,我在IDE中遇到有关兼容性的错误。 但在我的工作项目中,我没有得到它。 我不知道,是否有其他兼容性设置,而不是build.gradle和AndroidManifest.xml?为什么它在API< 19?

更新: 您需要在Android Studio中检查Lint设置。 编辑 - 检查 Android Lint,在旧版本上调用新方法

2 个答案:

答案 0 :(得分:1)

如果您只使用在API 10之前创建的方法(您可以检查here),一切正常。

如果您不确定,可以运行lint(通过右键单击根文件夹),然后您可以检查lint是否警告您不推荐使用方法。

如果您想要更多解释,请不要犹豫,发表评论

答案 1 :(得分:1)

  

为什么它在API< 19?

根据这个:https://code.google.com/p/android/issues/detail?id=73483它“主要适用于”API 15,并且您在API 16仿真器(4.1.2)上进行了测试。

问题提升者声明:

  

由于它在API级别19中未被隐藏,因此try-with-resources向后兼容至API级别15。

Google会员回复(已编辑):

  

AutoCloseable是ics。它只是一个界面;这是javac发出代码来实际关闭。 iirc中的AutoCloseable课程数量少于我们实际取消的课程

     

所以“向后兼容”有点误导。 “大多数作品”更接近事实。

由于它不完全兼容,警告来自API 19。

至于为什么你没有看到警告,我认为这取决于你可以追溯到2013年12月的旧buildToolsVersionhttps://developer.android.com/tools/revisions/build-tools.html

  

您应该始终使用Android SDK Manager下载最新版本来更新Build Tools组件