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

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

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

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

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

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

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

 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" } } 

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

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

Из:

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

Для того, чтобы:

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

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

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

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

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

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

Перейдите в раздел «Структура проекта»> «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+

Повторно синхронизировать файлы градиентов и все фиксированные

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

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

был:

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

NB

Я обновил Tools & Extras в менеджере SDK.

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

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

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

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

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

Для того, чтобы:

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

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

Просто в дополнение: другие ответы здесь не помогли решить проблему, но я нашел альтернативный способ исправить проблему андроида-л на 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' } 

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