Android API 级别 - gradle 编译 - 会运行吗?

Posted

技术标签:

【中文标题】Android API 级别 - gradle 编译 - 会运行吗?【英文标题】:Android API level - gradle compiles - will it run? 【发布时间】:2016-06-11 09:50:55 【问题描述】:

我将我的 android 项目中用于测试的 API 级别从 build.gradle 文件中的 22 更改为 7。

Gradle 构建项目没有问题,它在我的(Android 5.1 操作系统)上运行没有问题。

成功构建是否表明应用可以在较低的操作系统(低至 API 级别 7)上正常运行?如果不是 - 我如何检查哪个 API 最适合我的应用程序?

apply plugin: 'com.android.application'

    android 
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig 
            applicationId "com.myapplication"
            minSdkVersion 7
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        
        buildTypes 
            release 
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            
        
    

    dependencies 
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.2.0'
        compile 'com.android.support:design:23.2.0'
    

【问题讨论】:

【参考方案1】:

Gradle 工具,尤其是 Lint,现在可以很好地确定您的 minSdkVersion 是否真的适用于您的应用程序,并且当您使用不可用的 API 时,通常会阻止 lintVitalRelease 任务中的发布构建在您的最低 SDK 级别上。

当然,您总是可以(并且应该)创建一个 API 级别 7 的模拟器并在那里测试您的应用程序。即使它没有立即崩溃,有些事情可能表现得很奇怪/不同,或者可能根本不工作或根本不可见,因为您使用的兼容 API 调用已在较低 API 级别上转换为 noops。

【讨论】:

以上是关于Android API 级别 - gradle 编译 - 会运行吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android Studio 后端设置 API 级别

为 api 26 (Android) 设置 Gradle

无法在Android Studio上更改API级别

应用程序的 minSdkVersion 比设备 API 级别(android-R)更新

从Android 9(API级别28)开始,默认情况下禁用明文支持。

如何在Android Studio中为消息“调用需要API级别21(当前最小值为16)”启用lint错误?