Подтвердить что ты не робот

Не удалось слияние манифеста: uses-sdk: minSdkVersion 10 не может быть меньше версии L, объявленной в библиотеке com.android.support:appcompat-v7:21.0.0-rc1

Полученная выше ошибка после загрузки версии предварительного просмотра L в Android Studio, когда мой проект имел minSdkVersion 19.

Кроме того, при установке mindSdkVersion, как показано ниже:

defaultConfig {
....
          minSdkVersion 'L'
....
    }

Я получаю десятки ошибок, как показано ниже, в отношении ресурсов от AppCompat-v7-21:

/home/user/workspace/project/build/intermediates/exploded-aar/com.android.support/appcompat-v7/21.0.0-rc1/res/values-v21/values.xml
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'.

У меня есть 2 вопроса:

  • Почему AS жалуется на minSdkVersion? Я предполагаю, что AppCompat-v7 21 поддерживает только L-версию; но почему? Кроме того, будет ли он поддерживать только выпуск L, когда он будет официально выпущен осенью? Потому что это было бы проблемой... Или это просто временное ограничение для того, чтобы приложения не могли быть перенесены в Play Store, как указано в ключевом документе Google I/O 2014?
  • Почему AppCompat-v7 21 жалуется на эти ошибки, поскольку я уже установил mindSdkVersion в L?
4b9b3361

Ответ 1

compileSdkVersion 'android-L'

БУМ. Готово.

ПОСЛЕДНИЙ РЕДАКТИРОВАНИЕ:. Начиная с версии Android 5.0, это уже не проблема, просто нажмите прямо на уровень API 21.

Изменить для ясности. Действительно, как указано в David_E ниже, это решение работает только для версии L, если вы попытаетесь развернуть приложение на устройстве ниже L (ex <= 4.4.4) будет жаловаться на OLD_SDK. Для того, чтобы приложение работало с pre-L, вам все равно нужно использовать старую v20-поддержку поддержки lib + app compat + targetVersionSdk и compileVersionSdk

dependencies {

        compile 'com.android.support:appcompat-v7:20.+'
        compile 'com.android.support:support-v4:20.+'
    }

    android {
        compileSdkVersion 20
        buildToolsVersion '20'

        defaultConfig {
            applicationId "com.example.application"
            minSdkVersion 10
            targetSdkVersion 20
            versionCode 1
            versionName "1.0"
        }
}

Ответ 2

Ответ, указанный здесь, может не работать должным образом, так как это сделает ваше приложение работать только для Android L.

Чтобы сохранить обратную совместимость со старыми версиями ОС Android, измените gradle dependecy

From:

compile 'com.android.support:appcompat-v7:+'

To:

compile 'com.android.support:appcompat-v7:20.+'

Обратите внимание, что ошибка возникает из-за com.android.support:appcompat-v7:21.0.0-rc1, причина в том, что использование appcompat-v7:+ сообщит gradle для импорта последней зависимости библиотеки appcompat-v7, к сожалению, эта последняя версия работает только для Android L, поэтому мы должны указать на предыдущую версию.

Надеюсь, Google это исправит в ближайшем будущем.

Ответ 3

Для меня работала установка Android Studio Beta (выпуск без предварительного просмотра, бета-версия была запущена сегодня как часть IO).

Удалите предварительный выпуск и установите бета-версию и откройте свой проект. Он попросит вас использовать SDK проекта или Studio SDK, используйте Android Studio SDK.

Перейдите в файл local.properties проектов и где у вас есть sdk.dir, убедитесь, что любые обратные слэши() удвоены .e.g. \.

Перейдите в раздел Структура проектa > SDK и убедитесь, что это указывает на Android SDK на моем ПК, это C:\Program Files (x86)\Android\android-studio\SDK.

Затем в ваших проектах и ​​в любых библиотеках у вас есть файлы build.gradle, в которых у вас есть

compile 'com.android.support:support-v4 Измените его на compile 'com.android.support:support-v4:20+

Повторно протестируйте файлы gradle и все исправленные

Ответ 4

Чтобы заставить работать с рабочей версией Просто измените зависимости gradle следующим образом:

dependencies {
    compile 'com.android.support:gridlayout-v7:19.0.1'
    compile 'com.android.support:appcompat-v7:19+'
    ...
}

было:

compile 'com.android.support:appcompat-v7:+'

N.B.

Я обновил инструменты и дополнительные функции в менеджере SDK.

после того, как проект был сломан, я исправил его, как показано выше.

На данный момент я не обновляю андроид L и 4.4W (на сегодня достаточно ошибок:-()

Ответ 5

Спасибо Дэвиду за ваш ответ!

Мне пришлось изменить

compile 'com.android.support:support-v13:+'

To:

compile 'com.android.support:support-v13:20.+'

И теперь все работает отлично.

Ответ 6

Просто в дополнение: другие ответы здесь не помогли мне решить проблему, но я нашел альтернативный способ исправить проблему android-l на Android Studio 0.8.0. После того, как я изменил зависимости в build.gradle, проблема печально сохранилась, что код будет говорить OLD_SKD. Я использую Galaxy S2.

Помимо изменения всех вещей до: 19 +:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19+'
    compile 'com.android.support:support-v4:19+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:mediarouter-v7:19+'
}

Это все равно не сработало, поэтому мне пришлось вернуться везде повсюду:

android {
    compileSdkVersion 19
    buildToolsVersion '19.1'
    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 1
        versionName '1.0'
    }

Теперь приложение снова работает на телефоне. Вероятно, я должен получить новый мобильный телефон, но пока надеюсь, что это может кому-то помочь.