マニフェストのマージに失敗しました:uses-sdk:minSdkVersion 14


233

最新の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

同じエラーError:Execution failed for task ':app:processDebugManifest'が発生しています。>マニフェストのマージに失敗しました:uses-sdk:minSdkVersion 19は、ライブラリcom.android.support:support-v4:21.0.0-rc1で宣言されたバージョン19より小さくすることはできません
bobby.dhillon

私は、同じ例外minSdkVersionが15で私は、Android Studioと新しいビルドツールでそのバグを推測するように、更新されたSDKビルドツールバージョン15より小さくすることはできません取得しています
Boardy

1
バグのようです:code.google.com/p/android/issues/detail?id=72430今の修正は、Mavenの-のmetadata.xmlで行をコメントアウトすることである
エマニュエルCanha

回答:


312

注:API 21、Lollipopのリリースを反映するように更新されました。必ず最新のSDKをダウンロードしてください。

私のモジュールの1つで、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:+、明らかにL SDKを必要とするリリース候補(21.0.0-rc1)の最新のLリリースをピックアップすることだと思います。

編集:

新しいビュー(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"

(/ androiddevのEddieRingleへのクレジット-http ://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/

別の編集

appcompat-v7に関する@murtuzaの以下の回答を必ず参照し、それが役立つ場合は賛成票を投じてください。


3
Mavenからコンパイルされたライブラリはどうですか?「古い」依存関係を除外するにはどうすればよいですか?
Arnaud 2014年

4
@Arnaud compile( "blah:blah:bla"){exclude group: 'com.android.support'、module: 'support-v4'}
AndroidGecko

3
CardView、RecyclerView、およびPaletteを使用するには、マニフェストを変更して、マージ競合のGradleスローを回避する必要があることに注意してください。詳細については、このリンクを参照してください。reddit.com
Michel

3
依存関係バージョンで+を使用するように勧めることは決してありません。常に、使用するライブラリの正確なバージョンを指定してください(またはコードを作成するときに利用できます)。20歳以上でさえ悪い。そして、あなたが依存しているライブラリがこの悪い習慣に従うなら、その依存関係を除外し、その依存関係の独自のバージョンを提供することを検討してください。これにより、いつでもビルドを再現できます。依存関係バージョンで+を使用する提案を削除して、回答を改善してください。
Daniele Segato 14

1
@DanieleSegatoが言ったこと。これまで動的バージョン管理を推奨しないでください。それは悪い習慣です。
Xavier Ducrohet 14

69

また、appcompat-v7ライブラリをインポートする場合は、次のようにバージョン番号の末尾にタグを付けてください。

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

support-v4バージョンのみを変更した後も、エラーが発生します。

マニフェストのマージに失敗しました:uses-sdk:minSdkVersion 15は、ライブラリcom.android.support:support-v4:21.0.0-rc1で宣言されているバージョンLより小さくすることはできません

v4がまだ問題であるように見えるため、少し混乱しましたが、実際には、appcompat v7バージョンを制限することで問題が修正されました。


良いキャッチ!私のv7のいずれにもバージョンがありませんでした。
RoundSparrow hilltx 2014年

また、サポートv13の場合も同じ)
Defuera

1
私もappcompat_v7の不一致がありbuildToolsVersion '20.0.0'ました。私android{}compile 'com.android.support:appcompat-v7:20.0+'私の中でdependencies {}は同じではなかったので、それらを同じにしました(ここに示すように)。
Azurespot 2014

1
+識別子を将来のバージョンで使用することは悪い習慣です。正確なバージョンを指定してください。「com.android.support:appcompat-v7:19.+」をこの「com.android.support:appcompat-v7:19.0.0」または最新のものに更新することをお勧めします。それでも問題が解決しない場合は、SDKマネージャーからサポートライブラリ更新してください
sud007 2015

55

解決策1:

変更に-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>

Manifestマージを使用するには、gradle 0.11以上を使用してください。

解決策2:

  • 変更 compile 'com.android.support:support-v4:+'compile 'com.android.support:support-v4:20.+'の中でbuild.gradle。これv4:21.0.0により、バージョンLを必要とするGradleを使用でき なくなります。

  • ただし、外部依存関係のいずれかが同じものを使用している場合。それらが同じものを更新するのを待つ必要があるでしょう。

解決策3:

  • <version>21.0.0-rc1</version>ファイル内の削除/コメント<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml

  • support-v7についても同じ手順を繰り返します。


私の場合、appcompat-v7の同等のものも削除する必要がありました。
eipipuz 14

2
はい、オプションとしてソリューション2を提供しません。適切な依存関係管理(適切なバージョンを使用)、または解決戦略の使用が適切なソリューションです。Mavenリポジトリを編集しても、新しいリポジトリがリリースされるまで問題が遅れるだけです。
Xavier Ducrohet 14

ソリューション1 + 3は私の命を救いました:)
2014

2
最初のオプションが機能します!これを行う理由についての詳細を追加することをお勧めします。
Tejasvi Hegde 2014

24
<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ファイルに追加します



ありがとう@ userM1433372、私の日を保存することに賛成:)
Ravi Vaniya

11

問題は、推移的な依存関係でも発生します。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

ここでリンクする対応する問題を読んでいるときにこれを見つけまし


ありがとう!置くよりも簡単には:)すべての依存関係に除外
Sloy

8

build.gradleファイルでは、デフォルトで「com.android.support:support-v4:+」をコンパイルしていたので、gradleプロジェクトをビルドするときに、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:+'

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

8

上記の正解に加えて、ライブラリのネストが原因で問題が引き続き発生する可能性があります。この場合、以下の例を試してください:

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

Cordova CLIを使用してハイブリッドアプリを構築している人にとって、このコマンドは次のことを支援します。

cordova build android -- --minSdkVersion=15

はい、あなたが見たようにそれは二重の二重ダッシュを使用します。


これで実際の問題は解決しましたか?いいえ。それはそのようにしか機能cordova run androidしませんが、失敗します。
Ionut Necula 2017

@lonutあなたは実際の問題が何であるか知っていますか?
ProllyGeek 2017

私の場合、問題は私が使用しているプラ​​グインですcordova-plugin-facebook4。unistallingすることで、問題なくcordova run android動作します。残念ながら、私はこれに対する解決策をどこにも見つけられませんでした。自分を手動で追加しようとしminSdkVersionましたAndroidManifestが、上書きされています。まだそれを理解しようとしています。
Ionut Necula 2017

@lonut私が取り組んでいるいくつかのアプリで同じプラグインを使用しています。手助けできるかどうかお知らせください。ただし、build.gradleファイルを確認する必要があります。追加情報を提供できる場合は、私がお手伝いできます。
ProllyGeek 2017

ようやくminSdkバージョンを15に変更して解決しましたconfig.xml。行:<preference name="android-minSdkVersion" value="14" />。このようにして、AndroidManifestファイルは新しいバージョンでも更新されます。
Ionut Necula 2017

6

私も同じ問題を抱えていて、次の変更が助けになりました:

から:

dependencies {
    compile 'com.android.support:support-v4:+'

に:

dependencies {
 compile 'com.android.support:support-v4:20.0.0'
}

それはコードではありません。build.gradleファイルでこの変更を行う必要があります。
min2bro 2014

6

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
}

注:一部のライブラリとプロジェクトが正常に機能するには、Android Studioで現在利用可能なAPIレベルよりも低いAPIレベルをダウンロードする必要がある場合もあります。


これは根本的な問題であるように見えます:「 'com.android.support:support'がどこにあるか」...「最新の値を使用していることを確認してください」これがサイズとほぼ同じです!
Fattie 2014年

5

build.gradleで以下の行を編集して問題を解決しました。:-)

バージョン20を追加しています

から

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

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

1
信じられない。これを除いて、上記の他の答えはどれもうまくいきませんでした。ありがとうございました!!!注:私のファイルv4v7サポートファイルの両方をに変更する必要がありました:20.+
Azurespot 14


4

すべてのサポートとappcompatライブラリをバージョン19で構成する必要があります。+

サポートライブラリを19. +バージョンのままにするという推奨が機能しない場合は、AndroidManifestファイルで次のヒントを試すことができます。

最初にこのコードを追加します:

xmlns:tools="http://schemas.android.com/tools"

そして、アプリケーションレベルで(アプリケーション内ではありません!)

<uses-sdk tools:node="replace" />

4

私はここですべてのソリューションを作成しましたが、結果はありません。別の場所を調べてIDEをだます方法を見つけたので、Mainfestに行を追加して、Gradleに別のソリューションを使用させる必要があります。あなたはbuild.gradleに置く行は:

<uses-sdk tools:node="replace" />

それだけで、うまくいきます。

お役に立てば幸いです。


3
追加することを忘れないでください:xmlns:tools="http://schemas.android.com/tools"<manifest>-タグ
SEB



1

私にとって、このような問題は、

minSdkVersion 14

build.gladdleファイルで、エラーメッセージで指定されているものを使用します

しかし問題は

Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library

だから私はbuild.gladdleファイルで14から15に変更し、それは動作します

試してみる。


1

minSdkVersion必要なものをターゲットにする、つまり必要なものに変更する私の場合minSdkVersion14。。

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

0

忘れずに、プロジェクトのフォルダーではなく、プロジェクトの 'app'サブフォルダーにあるbuild.gradleを編集する必要があります。バージョン "L"の問題を解決しようとして、1日が過ぎてしまいました。


0

プロジェクトのビルドフォルダーを削除し、gradleプロジェクトを再同期して再ビルドしてください。また、他の人がこの投稿で言ったように-このようなことをする代わりに:

compile 'com.android.support:support-v4:19.+'

これを行う:

compile 'com.android.support:support-v4:19.1.0'

0

@Murtuzaありがとうございます。あなたの答えは私の問題を解決するのに役立ちましたが、私の場合

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:+' 希望から これは誰かを助けるかもしれない


0

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:+'
}

0

Android Studio 1.1.0の場合:ファイル-プロジェクト構造-タブフレーバー-マニフェストよりも高い最小SDKバージョンを選択


0

私は2番目の解決策を持っています:

  1. 解凍https://dl.dropboxusercontent.com/u/16403954/android-21.zipするsdk\platforms\
  2. 次のようにbuild.gradleを変更します

    compileSdkVersion 21
    buildToolsVersion "20.0.0"
    
    defaultConfig {
        applicationId "package.name"
        minSdkVersion 10
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
  3. 追加

    <uses-sdk tools:node="replace" /> 

    マニフェストでxmlns:tools="schemas.android.com/tools";

  4. に行く sdk\extras\android\m2repository\com\android\support\support-v4\21.0.0-rc1\

アンパックサポート-v4-21.0.0-rc1.aarと編集のAndroidManifest.xmlのような

から

<uses-sdk
        android:minSdkVersion="L"
        android:targetSdkVersion="L" />

<uses-sdk
        android:minSdkVersion="4"
        android:targetSdkVersion="21" />

PSあなたは必要なすべてのサポートライブラリでこれを行うことができます。


「L」を変更してAndroidスタジオを再起動しましたが、プロジェクトのビルド時に同じ問題が発生しました(Ctrl +
F9

0

私のために働いた唯一のものはこれです:

project.propertiesで、私は変更しました:

cordova.system.library.1 = com.android.support:support-v4:+からcordova.system.library.1 = com.android.support:support-v4:20. +


0

最小APIレベルをBuild Settings -> Player Settings -> Other Settings -> Minimum SDK Levelより高いバージョンに変更するだけです。


0

最善の方法は、Android Studioに問題を修正させることです。

私は以下をしました、そしてそれはうまくいきました。

  1. Android Studioでプロジェクトを開くと、修正するためのリンクがクリックされた場合、エラーがポップアップ表示されます。

  2. Android Studioでプロジェクトを再度開くと、エラーがポップアップ表示されます。今回はステップ1で指定されていない場合はリンクが表示されます。指定されたリンクをクリックして修正します。

どちらの操作にも数分かかりましたが、すべての問題が修正されました。


0

解決策:マニフェストのマージが失敗しました属性application @ ppComponentFactory ...

最新で最高のFirebaseライブラリまたはその他のライブラリを使用している場合、それらは実際にはandroid.supportではなくAndroidXを使用しています。マニフェストのマージが失敗したため、問題が発生する可能性があります。したがって、この場合、プロジェクトはAndroidXに移行する必要があります。リンクに従ってください:https : //firebase.google.com/support/release-notes/android#update_-_june_17_2019

または、このビデオをご覧ください。 https://youtu.be/RgveQ4AY1L8 ありがとうございます。


ソリューションへのリンクは歓迎されますが、あなたの答えがそれなしでも役立つことを確認する必要があります。ターゲットページが利用できない場合に備えて、リンクの前後にコンテキストを追加し、リンク先のチュートリアルの最も関連性の高い部分を説明することをお勧めします。
Joey、

#Joeyさん、よろしくお願いします。もう少し説明を追加しましょう。ありがとう。
Subhojit Halder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.