Android Gradle设置

Android Gradle设置,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我对渐变版本设置非常困惑。我发现了这个构建系统,但是没有关于版本控制细节的文章。你能解释一下这些选项是什么意思吗 compileSdkVersion buildToolsVersion minSdkVersion targetSdkVersion minSdkVersion最明显,因为它意味着我们希望支持的最小API,例如14(Android>=4.0) targetSdkVersion: 此属性通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为以保持应用程序与目标版本的前向兼容性

我对渐变版本设置非常困惑。我发现了这个构建系统,但是没有关于版本控制细节的文章。你能解释一下这些选项是什么意思吗

compileSdkVersion
buildToolsVersion
minSdkVersion
targetSdkVersion
minSdkVersion
最明显,因为它意味着我们希望支持的最小API,例如14(Android>=4.0)

targetSdkVersion

此属性通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为以保持应用程序与目标版本的前向兼容性

我不太明白

我的案例是支持API 15中的设备。正确的设置是什么?
我在某个地方读到,目标应该是尽可能高的,Android Studio也告诉我,但当我设置这个并尝试在Nexus 5上运行时,我得到:

Failure [INSTALL_FAILED_OLDER_SDK]

我的
build.gradle

android {
    compileSdkVersion 'android-L'
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "my.package.name"
        minSdkVersion 14
        targetSdkVersion 'L'
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
根据官方文件: 如果要尝试新功能,应使用以下值:

compileSdkVersion is set to 'android-L'
minSdkVersion is set to 'L'
targetSdkVersion is set to 'L'
defaultConfig {
        applicationId "my.package.name"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
这是失败的原因[INSTALL\u FAILED\u OLDER\u SDK]

如果您不需要android-L,我建议使用以下值:

compileSdkVersion is set to 'android-L'
minSdkVersion is set to 'L'
targetSdkVersion is set to 'L'
defaultConfig {
        applicationId "my.package.name"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
尽管如此,这里描述了一个非官方的解决方法(无论如何,我建议您不要使用它)


发布您的构建。gradleI无法使用
minSdkVersion设置为“L”
,因为我的目标是Android 14。Android-L是一个预览版。Google决定禁止Google play中的应用程序使用此测试版API。唯一的方法是遵循上面的解决方法。否则你必须使用不同的风格,当它成为正式版本时,你可以合并它。我决定构建agains 19版本。这对那些想要以API 14为目标的人来说不是个好建议。如果您想在未来的L版本中试用功能,则只应使用L SDK。如果您不需要L,那么最好使用SDK的非预发布版本,避免在非L设备上运行APK时弄乱它。@ScottBarta您是对的。我修改了我的问题以便更好地解释。