Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IntelliJ/Eclipse不遵守Android应用程序的最低SDK版本_Android_Eclipse_Intellij Idea - Fatal编程技术网

IntelliJ/Eclipse不遵守Android应用程序的最低SDK版本

IntelliJ/Eclipse不遵守Android应用程序的最低SDK版本,android,eclipse,intellij-idea,Android,Eclipse,Intellij Idea,我有一个针对安卓15的安卓项目,但至少有安卓8的版本。这在清单文件中定义: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/> 这意味着我只能使用Android 8的功能 当我使用字符串类“isEmpty()方法”(在API 9中添加)这样的方法时,IntelliJ和Eclipse都很乐意编译它,但当我在较旧的设备上运行它时,我会崩溃,因为API 8没有实现isEmpty() 有人知道为

我有一个针对安卓15的安卓项目,但至少有安卓8的版本。这在清单文件中定义:

<uses-sdk android:minSdkVersion="8"
    android:targetSdkVersion="15"/>

这意味着我只能使用Android 8的功能

当我使用字符串类“isEmpty()方法”(在API 9中添加)这样的方法时,IntelliJ和Eclipse都很乐意编译它,但当我在较旧的设备上运行它时,我会崩溃,因为API 8没有实现isEmpty()

有人知道为什么两个IDE都不能捕获这样的东西吗

我的Java编译器版本是1.6.0!


谢谢!如果有任何信息我错过了,请随时留下评论,我会把信息挖出来

它应该是编译的。这允许您通过包装器类在较新的SDK中使用较新的方法。如果你的目标SDK是8,那么IDE会抓住你并抱怨

更多信息请点击此处:

包装类技术非常有用。这篇博文中有一个关于它的指南:

编辑:

应该注意的是,Eclipse的最新ADT(r20,可能更早)在默认设置中带有Lint,它将查找minSDK之上API方法的使用情况。但是,它只会在文件被修改后或运行Lint时检查文件

关于Lint的更多信息:

对于IntelliJ IDEA:

  • 项目结构
    模块
  • 选择一个模块
  • Dependencies
    选项卡上,选择与要限制自己的API级别相关的
    模块SDK
    <例如,代码>安卓2.3.3谷歌API
  • IDEA还致力于改进其对Android Lint的


    谢谢!期待着这次发布,因为我更喜欢IntelliJ而不是Eclipse!:)