Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
如果我使用了错误的API级别,如何防止Android Studio生成签名APK成功_Android_Eclipse_Android Studio - Fatal编程技术网

如果我使用了错误的API级别,如何防止Android Studio生成签名APK成功

如果我使用了错误的API级别,如何防止Android Studio生成签名APK成功,android,eclipse,android-studio,Android,Eclipse,Android Studio,目前,我有一个min SDK API级别为10的项目 在我的代码中,我意外地使用了需要API级别19的函数 以前,如果我使用Eclipse,它将阻止我成功构建APK 然而,在切换到AndroidStudio 1.0之后,它并没有阻止我生成签名的APK?注意,我没有对paritcular函数使用@suppressint(“NewApi”) 我有没有办法强制执行AndroidStudio 1.0,以防止这种错误 正如您在我的Android Studio屏幕截图中所看到的,尽管我强制执行了“在旧版本上

目前,我有一个min SDK API级别为10的项目

在我的代码中,我意外地使用了需要API级别19的函数

以前,如果我使用Eclipse,它将阻止我成功构建APK

然而,在切换到AndroidStudio 1.0之后,它并没有阻止我生成签名的APK?注意,我没有对paritcular函数使用
@suppressint(“NewApi”)

我有没有办法强制执行AndroidStudio 1.0,以防止这种错误

正如您在我的Android Studio屏幕截图中所看到的,尽管我强制执行了“在旧版本上调用新方法作为错误”,但这并没有阻止我构建APK

我的
build.gradle
如下所示

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "org.myproject.gui"
        minSdkVersion 10
        targetSdkVersion 19
    }

    ...
注意,我可以在编辑器中看到一个实际的lint警告

我甚至尝试在我的
build.gradle中添加以下行

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "org.myproject.gui"
        minSdkVersion 10
        targetSdkVersion 19
    }

    ...

    // This is important to prevent programmer mistake?!
    lintOptions {
        abortOnError true
    }

但是,这并不妨碍我成功地
生成签名的APK…

您在哪里设置了MinSDK?如果我没记错的话,build.gradle文件中的设置会覆盖AndroidManifest中写入的内容。xml@Snow我已经更新了我的问题。我认为您没有任何错误,因为您将compileSdkVersion设置为19,所以gradle认为使用SDK 19中的代码并不奇怪。尝试将其设置为10以查看是否有更改?使用minSDK中不可用的API调用不是错误;如果Eclipse阻止了您进行编译,那么还有其他一些事情正在发生。允许APK在较旧的版本上运行并进行版本检查以防止所讨论的方法调用在不可用时执行,这种情况并不少见。你必须小心一点,使用反射来访问它,这样它就可以通过类加载器,但这是可以做到的。为了避免我犯下如此代价高昂的错误,请运行Analyze->Inspect代码。。。为了避免我自己调用那些大于minSdkVersion的API。