Настройка minSdkVersion не работает в Android Studio

У меня есть совершенно новый проект, который я начал с помощью мастера создания новых проектов, где я экспериментирую с материалом и Android L SDK. У меня установлен эмулятор sdk L, где на моем фактическом устройстве работает SDK 19. Я попытался создать отдельные «productFlavors», «современный» для «L» и «старый» для 19 и, наконец, используя «старый» для запустить на устройстве, но это не сработало. Я, наконец, попытался удалить все следы SDK «L» из моего build.gradle и даже дошел до установки минимальной/целевой версии на 19 в AndroidManifest.xml, но когда я пытаюсь запустить его, средство выбора устройства все равно каким-то образом улавливает это. «L» — это minSDK.

скриншот выбора устройства

Я синхронизировал и повторно синхронизировал свои файлы сборки gradle, я выполнил чистую работу перед запуском конфигурации запуска, я даже просмотрел файлы свойств, чтобы увидеть, был ли где-то установлен целевой объект, который я пропустил. Кажется, что просто используя «L» SDK, minimunTarget фиксируется на «L», что я не считаю правильным. Где я ошибаюсь?

Вот мой build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId 'com.craig.mymaterial'
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        modern {
//            minSdkVersion 'L'
//            targetSdkVersion 'L'
        }
        old {
            minSdkVersion 19
            targetSdkVersion 19
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    // You must install or update the Support Repository through the SDK manager to use this dependency.
    compile 'com.android.support:support-v4:19.+'
}

Вот мой AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.craig.mymaterial" >

    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".ItemListActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ItemDetailActivity"
            android:label="@string/title_item_detail"
            android:parentActivityName=".ItemListActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".ItemListActivity" />
        </activity>
    </application>

</manifest>

person Cliff    schedule 26.07.2014    source источник


Ответы (2)


Поскольку Material Design не будет официально поддерживаться до выпуска Android L, Google сделал так, что все, что скомпилировано с «Android-L», привязано к этой версии.

Может быть обходной путь, но «официальным» решением будет изменение вашей версии компиляции, чтобы решить проблему.

person ImmortalDev    schedule 26.07.2014
comment
Да, я только что нашел этот ответ, который подробно объясняет ситуацию, а также обходной путь: reddit.com/r/androiddev/comments/297xli/ - person Cliff; 26.07.2014

Ваша версия компиляции — 20, но версия, которую вы установили в эмуляторе, — 19. Если вы установите для compileSdkVersion значение 19, он должен работать

person Herb    schedule 26.07.2014
comment
Да, кажется, что превью L — это всего лишь превью. Он не будет обратно совместим, пока не будет официально выпущен. Установка SDK для компиляции на 19 или 20 не позволяет мне использовать тему Material. - person Cliff; 26.07.2014
comment
Тогда вы не сможете использовать его на устройстве/эмуляторе с SDK 19. - person Herb; 26.07.2014