Не удалось слияние манифеста: use-sdk: minSdkVersion 14
После загрузки последней версии SDK и установки Android Studio мой проект не может быть создан. Я получаю следующее сообщение:
Error:Gradle: Execution failed for task ':SampleProject:processProdDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
Ответы
Ответ 1
Примечание. Это обновление было обновлено, чтобы отразить выпуск API 21, Lollipop. Обязательно загрузите последнюю версию SDK.
В одном из моих модулей у меня было следующее в build.gradle:
dependencies {
compile 'com.android.support:support-v4:+'
}
Изменение этого параметра на
dependencies {
// do not use dynamic updating.
compile 'com.android.support:support-v4:21.0.0'
}
исправлена проблема.
Убедитесь, что вы не используете общее включение com.android.support:support-v4:+
или любых других библиотек поддержки (v7, v13, appcompat и т.д.) в любом месте вашего проекта.
Я бы предположил, что проблема заключается в том, что v4:+
выбирает последнюю версию выпуска release (21.0.0-rc1), которая, очевидно, требует L SDK.
Edit:
Если вам нужно использовать новые представления (CardView, RecyclerView и Palette), то должно работать следующее:
compile "com.android.support:cardview-v7:21.0.0"
compile "com.android.support:recyclerview-v7:21.0.0"
compile "com.android.support:palette-v7:21.0.0"
(Кредит EddieRingle on/androiddev - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/)
Другое Редактирование
Убедитесь, что @murtuza ответьте ниже относительно appcompat-v7 и upvote, если это помогает!
Ответ 2
Кроме того, если вы импортируете библиотеку appcompat-v7, убедитесь, что вы помечаете номер версии в конце ее так:
compile 'com.android.support:support-v4:19.+'
compile 'com.android.support:appcompat-v7:19.+'
После изменения версии support-v4 я все равно получил ошибку:
Не удалось выполнить манифест слияния: uses-sdk: minSdkVersion 15 не может быть меньше версии L, объявленной в библиотеке com.android.support:support-v4:21.0.0-rc1
Это было немного запутанно, потому что похоже, что v4 все еще проблема, но на самом деле ограничение версии appcompat v7 устраняет проблему.
Ответ 3
Решение 1:
Измените use-sdk на <uses-sdk tools:node="replace" />
и добавьте xmlns:tools="http://schemas.android.com/tools"
в AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.demo.android"
android:versionCode="16"
android:versionName="3.3.1">
.
.
<uses-sdk tools:node="replace" />
.
.
</manifest>
Убедитесь, что вы используете gradle 0.11 и выше для использования слияния Manifest.
Решение 2:
-
Измените compile 'com.android.support:support-v4:+'
на compile 'com.android.support:support-v4:20.+'
в build.gradle
. Это предотвратит использование gradle
v4:21.0.0
, для которого требуется версия L.
-
Однако, если ваша какая-либо из ваших внешних зависимостей использует то же самое. Вам, вероятно, придется ждать, пока они будут обновлять их.
Решение 3:
Ответ 4
<uses-sdk tools:node="replace" />
Больше не работает.
изменить uses-sdk
на
<uses-sdk tools:overrideLibrary="com.packagename.of.libary.with.conflict" />
и добавить
xmlns:tools="http://schemas.android.com/tools"
в файле AndroidManifest.xml
Ответ 5
Проблема все еще возникает с переходными зависимостями. Gradle предлагает способ принудительного использования определенной версии зависимости.
Например, вы можете добавить что-то вроде:
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:20.+'
force 'com.android.support:appcompat-v7:20.+'
}
}
к вашему build.gradle.
Если вы хотите узнать больше о Gradle стратегиях разрешения, обратитесь к этому руководству http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
Я нашел это при чтении соответствующей проблемы, которую я свяжу здесь
Ответ 6
Добавляя правильные ответы выше, проблема все еще может возникнуть из-за вложенности библиотеки. В этом случае попробуйте в качестве примера ниже:
compile 'com.android.support:support-v4:20.+'
compile ('com.github.chrisbanes.actionbarpulltorefresh:extra-abs:+') { // example
exclude group: 'com.android.support', module:'support-v4'
exclude group: 'com.android.support', module:'appcompat-v7'
}
Ответ 7
В файле build.gradle он по умолчанию компилировался "com.android.support:support-v4:+", поэтому, когда вы создаете проект w140, рассмотрите, com.android.support:support-v4: 21.0.0-rc1 из-за недавнего релиза предварительного просмотра L-разработчиков.
Внесите изменения в следующую строку, и это решит проблему.
Изменение
compile 'com.android.support:support-v4:+'
к
compile 'com.android.support:support-v4:20.+'
Аналогично, при использовании библиотеки поддержки v7-appcompat, сделайте изменение
compile 'com.android.support:appcompat-v7:+'
to
compile 'com.android.support:appcompat-v7:20.+'.
Ответ 8
для людей, создающих гибридные приложения с использованием CLI cordova, эта команда поможет:
cordova build android -- --minSdkVersion=15
да, он использует двойные двойные тире, как вы его видели.
Ответ 9
Для людей, сталкивающихся с этой проблемой в бета-версии Android Studio, принятый ответ не помог решить мою проблему. Импортируя проект, загруженный с GitHub, в моем файле build.gradle приложения было указано следующее:
dependencies {
compile 'com.android.support:support-v4:+'
}
Но в моей внешней папке библиотеки у меня есть эта папка:
support-v4-21.0.0-rc1 //note the 21
Я решил эту проблему, изменив зависимость:
dependencies {
compile 'com.android.support:support-v4:20.+' //20 used less than available strange but works
}
Примечание. Возможно, вам также понадобится загрузить уровень api ниже, чем в настоящее время в Android Studio, для какой-то библиотеки и проектов для правильной работы.
Ответ 10
У меня также была одна и та же проблема, и меня помогли следующие изменения:
от
dependencies {
compile 'com.android.support:support-v4:+'
в
dependencies {
compile 'com.android.support:support-v4:20.0.0'
}
Ответ 11
Я решил проблему, отредактировав строку ниже в build.gradle, и она работает! : -)
добавление версии 20. + '
С
dependencies {
compile 'com.android.support:appcompat-v7:+'
}
Для
dependencies {
compile 'com.android.support:appcompat-v7:20.+'
}
Ответ 12
compile('com.android.support:support-v4:19.1.0'){
force = true
}
Помог мне, взято из здесь
Ответ 13
Вам необходимо настроить все библиотеки поддержки и appcompat с версией 19. +
Если рекомендация оставить библиотеку поддержки с версией 19. + не работает, вы можете попробовать следующий совет в вашем файле AndroidManifest.
Сначала добавьте этот код:
xmlns:tools="http://schemas.android.com/tools"
И затем, на уровне приложения (не внутри приложения!)
<uses-sdk tools:node="replace" />
Ответ 14
Я делаю все решения здесь без результата, поэтому я смотрю в другом месте, и я нашел способ обмануть IDE, поэтому вам нужно поместить строку в Mainfest, чтобы сделать Gradle использование другого один, тот, который вы положили на build.gradle:
<uses-sdk tools:node="replace" />
просто он, и он работает.
Надеюсь, это поможет.
Ответ 15
Вам нужно удалить из build.gradle compile 'com.android.support:support-v13:+'
Ответ 16
Здесь новая ошибка, поданная для этого btw https://code.google.com/p/android/issues/detail?id=72430
Предполагая, что вы используете репозиторий поддержки, обходным путем является комментарий или удаление строки
21.0.0-rc1
в локальном файле регистрации репозитория Maven в/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
Ответ 17
Для меня такая проблема решается путем изменения
minSdkVersion 14
В файле build.gladdle и используйте тот, который указан в сообщении об ошибке
но проблема была
Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library
Поэтому я изменил с 14 до 15 в файле build.gladdle, и он работает
попробуй.
Ответ 18
Не забывайте, что вы должны отредактировать build.gradle в подпапке "app" вашего проекта, а не в папке проекта. Я потерял рабочий день, пытаясь решить проблему с версией "L".
Ответ 19
Попробуйте удалить папку построить в проекте и выполнить повторную синхронизацию проекта gradle, чтобы перестроить его. Кроме того, как и другие, сказанные в этом сообщении - вместо того, чтобы делать что-то вроде этого:
compile 'com.android.support:support-v4:19.+'
сделайте следующее:
compile 'com.android.support:support-v4:19.1.0'
Ответ 20
Спасибо @Муртуза. Ваш ответ помог мне решить мою проблему, но в моем случае
compile 'com.android.support:support-v13:19.+
также вместе с
compile 'com.android.support:support-v4:19.+'
compile 'com.android.support:appcompat-v7:19.+'
от
compile 'com.android.support:support-v4:+'
compile 'com.android.support:support-v7:+'
compile 'com.android.support:support-v13:+'
Надеюсь, это может помочь кому-то.
Ответ 21
У меня есть второе решение:
- unzip
https://dl.dropboxusercontent.com/u/16403954/android-21.zip
to sdk\platforms\
-
изменить build.gradle как
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "package.name"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
-
добавить
<uses-sdk tools:node="replace" />
в манифесте с xmlns:tools="schemas.android.com/tools"
;
-
Перейдите к sdk\extras\android\m2repository\com\android\support\support-v4\21.0.0-rc1\
распаковать support-v4-21.0.0-rc1.aar и отредактировать AndroidManifest.xml как
из
<uses-sdk
android:minSdkVersion="L"
android:targetSdkVersion="L" />
to
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="21" />
P.S. Вы можете сделать это со всеми необходимыми библиотеками поддержки.
Ответ 22
У меня есть несколько проектов, в которых я предпочитаю нацелить L.MR1 (SDKv22) и некоторые проекты, где я предпочитаю KK (SDKv19). Ваш результат может быть другим, но это сработало для меня.
// Targeting L.MR1 (Android 5.1), SDK 22
android {
compileSdkVersion 22
buildToolsVersion "22"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// google support libraries (22)
compile 'com.android.support:support-v4:22.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
}
// Targeting KK (Android 4.4.x), SDK 19
android {
compileSdkVersion 19
buildToolsVersion "19.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// google libraries (19)
compile 'com.android.support:support-v4:19.1+'
compile 'com.android.support:appcompat-v7:19.1+'
compile 'com.android.support:cardview-v7:+'
compile 'com.android.support:recyclerview-v7:+'
}
Ответ 23
В Android Studio 1.1.0: файл - структура проекта - вкладки - выберите Min SDK Version, которая выше, чем в манифесте
Ответ 24
Единственное, что сработало для меня, это:
В project.properties я изменил:
cordova.system.library.1 = com.android.support: поддержка-v4 +
в
cordova.system.library.1 = com.android.support: поддержка-v4: 20 +.
Ответ 25
Вы просто измените Минимальный уровень API с Build Settings → Player Settings → Other Settings → Minimum SDK Level
на более высокую версию.
Ответ 26
Лучший способ - позволить Android Studio решить проблему.
Я сделал ниже, и это работало нормально.
-
Откройте ваш проект в Android Studio, ошибки будут всплывающими, если есть ссылка для исправления, нажмите на нее.
-
Снова откройте ваш проект в Android Studio, появятся сообщения об ошибках, на этот раз будет ссылка, если она не указана в шаге 1, нажмите на данную ссылку, чтобы исправить это.
Обратите внимание, что обе операции заняли несколько минут, но исправили все проблемы.
Ответ 27
Просто minSdkVersion
целевой minSdkVersion
т.е. измените на нужный. В моем случае minSdkVersion
было 14
.
Переход на minSdkVersion
16
решил проблему
compileSdkVersion 29
defaultConfig {
applicationId "e.futaaapp"
minSdkVersion 14
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileSdkVersion 29
defaultConfig {
applicationId "e.futaaapp"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}