5

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

在此处输入图像描述

这是我的 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:+"
}
4

3 回答 3

4

在此处查看我在 /r/AndroidDev 的帖子,该帖子提供了一种解决方法。

于 2014-06-27T05:58:28.810 回答
3

您正在使用此依赖项:

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

这样,您就可以在 L-preview (21-rc1) 中使用 support-v4。

此支持库正在声明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'

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

于 2014-06-27T08:18:05.787 回答
1

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

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

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

似乎不能向后兼容(现在)。

于 2014-06-26T23:55:14.470 回答