Android Studio - 无法指定自己的minSdkVersion

时间:2014-06-26 22:20:18

标签: android android-studio android-manifest android-gradle android-5.0-lollipop

今天早些时候安装Android L开发者预览版SDK后,我想让我的应用程序兼容Android L和旧版本,如Jelly Bean。我的应用程序使用的是16的minSdkVersion,但是自从我尝试开发人员预览后,Android Studio似乎并不尊重我的minSdkVersion。我试图让我的应用程序在我的Galaxy Nexus(API 19)上运行,这是我得到的错误:

enter image description here

这是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.simon.holocountownapp"
    android:versionCode="45"
    android:versionName="4.1.1" >

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="L" />

...

这是我的build.gradle:

apply plugin: 'android'

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20'

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 'L'
    }
    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile 'com.doomonafireball.betterpickers:library:1.5.2'
    compile 'uk.co.androidalliance:edgeeffectoverride:1.0.1'
    compile 'com.readystatesoftware.systembartint:systembartint:+'
    compile "com.android.support:support-v4:+"
    compile "com.android.support:support-v13:+"
}

3 个答案:

答案 0 :(得分:4)

请参阅我的帖子/ r / AndroidDev here,它提供了一种解决方法。

答案 1 :(得分:3)

您正在使用此依赖项:

compile "com.android.support:support-v4:+"

通过这种方式,您在L-preview中使用 support-v4 (21-rc1)。

此支持lib声明minSdkVersion L(您可以检查Manifest)。

你必须强制minSdkVersion为'L'(查看文档:{​​{3}})

在开发环境中,打开模块的build.gradle文件,并确保:

compileSdkVersion is set to 'android-L'
minSdkVersion is set to 'L'
targetSdkVersion is set to 'L'

这不是错误,但这是因为这些API不是最终的。这是一种阻止在最终API 21设备上安装应用程序或使用支持lib 21-r1在商店中发布应用程序的方法。

答案 2 :(得分:1)

在开发人员文档中说(http://developer.android.com/preview/setup-sdk.html):

  

在开发环境中,打开模块的build.gradle文件,并确保:

     
      
  • compileSdkVersion设置为'android-L'
  •   
  • minSdkVersion设置为“L”
  •   
  • targetSdkVersion设置为“L”
  •   

似乎无法向后兼容(现在)。