Android Studio – невозможно указать собственный minSdkVersion

После установки 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:+"
}

comment
Android-Studio и так очень глючная, теперь вы хотите установить совершенно новый SDK в первый же день? У тебя будет много проблем.   -  person Blake G    schedule 27.06.2014
comment
@ChitownDev Android Studio не проблема. Библиотеки поддержки в L-preview работают с minSdk=L (проверьте их манифест). Поэтому, если вы хотите работать с minSdk=15, вы должны заменить это значение.   -  person Gabriele Mariotti    schedule 27.06.2014


Ответы (3)


Вы используете эту зависимость:

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

Таким образом вы используете support-v4 в L-preview (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'

Это не ошибка, но это потому, что эти API не являются окончательными. Это способ предотвратить установку приложений на окончательное устройство API 21 или публикацию их в магазине с помощью библиотеки поддержки 21-r1.

person Gabriele Mariotti    schedule 27.06.2014

См. мой пост в /r/AndroidDev здесь, который предлагает обходной путь.

person Eddie    schedule 27.06.2014
comment
Хотя эта тренировка отлично работает, ответ только по ссылке настоятельно не рекомендуется. Пожалуйста, отредактируйте ответ, чтобы описать содержание. - person nhaarman; 26.07.2014