Android Studio - 无法指定自己的minSdkVersion。

5
今天早些时候安装了Android L开发者预览版SDK后,我想使我的应用程序兼容Android L和旧版本,如Jelly Bean。我的应用程序使用minSdkVersion 16,但由于我尝试了开发者预览版,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" />

...

Here's my 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:+"
}

Android-Studio本来就很容易出现bug,现在你想在第一天安装全新的sdk?你会遇到很多问题。 - Blake G
@ChitownDev Android Studio不是问题所在。L-preview中的支持库与minSdk=L兼容(请检查它们的清单)。因此,如果您想使用minSdk=15进行开发,您需要替换此值。 - Gabriele Mariotti
3个回答

4
请看我在/r/AndroidDev的帖子这里提供了一个解决方法。

虽然这个解决方案很好,但仅提供链接的回答是不被鼓励的。请编辑回答以描述其内容。 - nhaarman

3

您正在使用此依赖项:

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

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

此支持库声明了 minSdkVersion L(您可以检查清单)。

您需要强制将 minSdkVersion 设置为'L'(请查看文档:http://developer.android.com/preview/setup-sdk.html)。

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

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

这不是一个bug,而是因为这些API还没有最终确定。这是一种防止在最终的API 21设备上安装应用程序或使用支持库21-r1发布应用程序的方法。


1
在开发者文档中提到(http://developer.android.com/preview/setup-sdk.html):
在开发环境中,打开您的模块的build.gradle文件,并确保以下内容:
- compileSdkVersion设置为“android-L” - minSdkVersion设置为“L” - targetSdkVersion设置为“L”
看起来目前不能向后兼容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接