Manifest birleşmesi başarısız oldu: uses-sdk: minSdkVersion 14


233

En son SDK'yı indirip Android Studio'yu yüklediğimden beri projem oluşturulamıyor. Aşağıdaki mesajı alıyorum:

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

Aynı hatayla karşılaşıyorum Hata: Yürütme görevi için başarısız oldu: app: processDebugManifest '. > Manifest birleşmesi başarısız oldu: use-sdk: minSdkVersion 19, com.android.support:support-v4:21.0.0-rc1
bobby.dhillon

Aynı istisnayı alıyorum minSdkVersion 15, sürüm 15'ten daha küçük olamaz. SDK Derleme araçları güncellendi, bu yüzden Android Studio'da ve yeni Derleme araçlarında bir hata olduğunu tahmin ediyorum
Boardy

1
Şu an için bir hata gibi görünüyor: code.google.com/p/android/issues/detail?id=72430 Şimdilik düzeltme maven-metadata.xml
Emanuel Canha

Yanıtlar:


312

Not: Bu, API 21, Lollipop'un sürümünü yansıtacak şekilde güncellenmiştir. En son SDK'yı indirdiğinizden emin olun.

Modüllerimden birinde build.gradle dosyasında aşağıdakiler vardı:

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

Bunu olarak değiştir

dependencies {
    // do not use dynamic updating.
    compile 'com.android.support:support-v4:21.0.0' 
}

sorunu düzeltti.

com.android.support:support-v4:+Projenizin hiçbir yerinde genel destek veya herhangi bir destek kütüphanesi (v7, v13, appcompat, vb.) Yapmadığınızdan emin olun.

Sorunun varsaymak istiyorum v4:+yukarı çekmeleri sürüm adayı (21.0.0-rc1) besbelli L SDK gerektirir son L sürümü.

Düzenle:

Yeni görünümleri (CardView, RecyclerView ve Palette) kullanmanız gerekiyorsa, aşağıdakilerin çalışması gerekir:

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'de EddieRingle'a kredi - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/ )

Başka Bir Düzenleme

Appcompat-v7 ile ilgili @ murtuza'nun cevabını aşağıda gördüğünüzden emin olun ve eğer yardımcı oluyorsa oylayın!


3
Maven'den derlenen bir kütüphaneye ne dersiniz? "Eski" bağımlılık nasıl dışlanır?
Arnaud

4
@Arnaud compile ("blah: blah: bla") {grubu hariç tut: 'com.android.support', modül: 'support-v4'}
AndroidGecko

3
CardView, RecyclerView ve Palette'i kullanmak için, birleştirme çakışması dereceli atmalarını önlemek için Manifest'inizi de değiştirmeniz gerekeceğini unutmayın. Ayrıntılar için bu bağlantıya bakın: reddit.com/r/androiddev/comments/297xli/…
Michel

3
Asla, asla, bağımlılık sürümünde + kullanmasını önermeyin. DAİMA kullanmak istediğiniz kitaplığın tam sürümünü belirtin (veya kodu yazarken kullanılabilir). 20. + bile kötü. Ve bağımlı olduğunuz bir kütüphane bu KÖTÜ uygulamasını takip edin, bağımlılığını hariç tutmayı ve bu bağımlılığın kendi versiyonunu sağlamayı düşünün. Bu, yapınızı istediğiniz zaman tekrarlanabilir hale getirir. Bağımlılık sürümünde + kullanma önerinizi kaldırarak yanıt satın alma işleminizi iyileştirin.
Daniele Segato

1
@ DanieleSegato ne dedi. Dinamik sürüm oluşturmayı asla önermeyin. Kötü uygulamalar.
Xavier Ducrohet

69

Ayrıca, appcompat-v7 kitaplığını içe aktarıyorsanız, sonunda bir sürüm numarasını şu şekilde etiketlediğinizden emin olun:

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

Sadece support-v4 sürümünü değiştirdikten sonra hala hatayı aldım:

Manifest birleşmesi başarısız oldu: use-sdk: minSdkVersion 15, com.android.support:support-v4:21.0.0-rc1 kütüphanesinde bildirilen L sürümünden küçük olamaz.

Biraz kafa karıştırıcıydı çünkü v4 hala sorun gibi görünüyor, ancak aslında, appcompat v7 sürümünü kısıtlamak sorunu çözdü.


İyi yakalama! benim v7 hiçbiri onların üzerinde sürümü yoktu.
RoundSparrow hilltx

ve aynı şey v13 desteği için de geçerlidir)
Defuera

1
Ben de appcompat_v7 uyumsuzluk vardı, buildToolsVersion '20.0.0'benim android{}ve compile 'com.android.support:appcompat-v7:20.0+'benim dependencies {}aynı değildi, bu yüzden onları aynı (burada gösterildiği gibi) yaptı.
Azurespot

1
Gelecekteki sürümler için + tanımlayıcı kullanmak kötü bir uygulamadır . Tam sürümü belirtin. 'Com.android.support:appcompat-v7:19.+' ' yı bu ' com.android.support:appcompat-v7:19.0.0 ' olarak güncellemenizi öneririz . Hâlâ sorun yaşıyorsanız SDK yöneticisinden destek kitaplığını güncellemeyi deneyin .
sud007

55

Çözüm 1:

Değişim kullandığı-sdk için <uses-sdk tools:node="replace" />ve eklemek xmlns:tools="http://schemas.android.com/tools" içindeAndroidManifest.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 birleşmesini kullanmak için 0.11 ve üzeri derecelendirmeleri kullandığınızdan emin olun.

Çözüm 2:

  • Değişim compile 'com.android.support:support-v4:+'için compile 'com.android.support:support-v4:20.+'de build.gradle. Bu, kalemin v4:21.0.0L versiyonunu gerektiren kullanımını önleyecektir .

  • Ancak, dış bağımlılıklarınızdan herhangi biri aynı şeyi kullanıyorsa. Muhtemelen bunların güncellenmesini beklemeniz gerekecektir.

Çözüm 3:

  • <version>21.0.0-rc1</version>Dosyanızdaki Kaldır / Yorum Yap<android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml

  • Support-v7 için de aynı işlemi tekrarlayın


Benim durumumda da appcompat-v7 eşdeğerini kaldırmak zorunda kaldım.
eipipuz

2
Evet, seçenek olarak çözüm 2 sağlamaz. Doğru bağımlılık yönetimi (doğru sürümü kullanarak) veya çözünürlük stratejisini kullanmak doğru çözümdür. Maven repo'yu düzenlemek sorunu yeni bir repo serbest bırakılana kadar erteliyor.
Xavier Ducrohet

Çözüm 1 + 3 hayatımı kurtardı :)
Tırmanış

2
İlk seçenek çalışıyor! Bunun neden yapılacağı hakkında bazı ayrıntılar eklemenizi öneririm.
Tejasvi Hegde


11

Sorun hala geçişli bağımlılıklarda ortaya çıkmaktadır. Gradle, bağımlılığın belirli bir sürümünün kullanımını zorlamanın bir yolunu sunar.

Örneğin şöyle bir şey ekleyebilirsiniz:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:20.+'
        force 'com.android.support:appcompat-v7:20.+'
    }
}

build.gradle.

Sınıf çözümleme stratejileri hakkında daha fazla bilgi edinmek istiyorsanız bu kılavuza bakın http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html

Ben bağlayacak gelen okuma sorununu bu süre bulundu burada


Teşekkürler! Her bağımlılığa hariç tutmaktan daha kolay :)
Sloy

8

Build.gradle dosyasında, varsayılan olarak 'com.android.support:support-v4:+' 'derlemişti, bu yüzden gradle projecitini oluştururken com.android.support:support-v4:21.0.0-rc1 Son L geliştirici önizleme sürümü nedeniyle.

Aşağıdaki satırda değişiklik yapın ve sorun çözülecektir. Değişiklik

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

için

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

Benzer şekilde v7-appcompat destek kitaplığı kullanırken,

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

için

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

8

Yukarıdaki doğru yanıtları eklediğinizde, sorun yine de kitaplık yuvalaması nedeniyle oluşabilir. Bu durumda, aşağıdaki örneği deneyin:

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 kullanarak karma uygulamalar oluşturan kişiler için bu komut yardımcı olacaktır:

cordova build android -- --minSdkVersion=15

evet gördüğünüz gibi çift çift tire kullanır.


Bu asıl sorunu çözüyor mu? Hayır. Sadece böyle çalışır, ama cordova run androidbaşarısız olur.
Ionut Necula

@lonut Asıl sorunun ne olduğunu biliyor musunuz?
ProllyGeek

Benim durumumda sorun, benim denediğim bir eklenti cordova-plugin-facebook4. Unistalling, cordova run androidişi iyi yapar . Maalesef hiçbir yerde bunun için bir çözüm bulamadım. Ben elle eklemek için çalıştı minSdkVersionkendimi AndroidManifestama üzerine yazılır ediliyor. Hala anlamaya çalışıyorum.
Ionut Necula

@lonut Çalıştığım bazı uygulamalarda aynı eklentiyi kullanıyorum, yardımcı olabilirsem bana bildirin. Ancak build.gradle dosyasını gözden geçirmeniz gerekir, belki ekstra bilgi verirseniz yardımcı olabilirim.
ProllyGeek

Sonunda değiştirerek çözmüş minSdkiçin sürüm 15içinde config.xml. Satır: <preference name="android-minSdkVersion" value="14" />. Bu şekilde AndroidManifestdosya yeni sürümle de güncellenir.
Ionut Necula

6

Aynı sorunu yaşadım ve aşağıdakileri değiştirmek bana yardımcı oldu:

dan:

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

için:

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

kod değil. bu değişikliği build.gradle dosyanızda yapmanız gerekir.
min2bro

6

Android Studio beta sürümünde bu sorunla karşılaşan kişiler için kabul edilen cevap sorunumu çözmedi. GitHub'dan indirilen bir projeyi içe aktarırken, uygulamanın build.gradle dosyamda söz konusu hata veren aşağıdakilere sahiptim:

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

Ancak harici kütüphane klasörümde şu klasör var:

support-v4-21.0.0-rc1 //note the 21

Bağımlılığı değiştirerek yukarıdaki sorunu çözdüm:

dependencies {
compile 'com.android.support:support-v4:20.+' //20 used less than available strange but works
}

Not: Bazı kitaplıkların ve projelerin düzgün çalışması için Android Studio'da şu anda mevcut olandan daha düşük bir API düzeyi indirmeniz gerekebilir.


Bu temel bir sorun gibi görünüyor: "nereye giderseniz gidin 'com.android.support:support'" ... "güncel değere sahip olduğunuzdan emin olun" Bu kadar büyük!
Fattie

5

Sorunu build.gradle dosyasında aşağıdaki satırı düzenleyerek çözdüm ve işe yarıyor! :-)

sürüm 20 + ' ekleniyor

itibaren

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

için

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

1
İnanamıyorum. Yukarıdaki cevapların hiçbiri benim için işe yaramadı, bunun dışında. Teşekkür ederim!!! Not, benim hem değiştirmek zorunda v4ve v7Destek dosyalarını :20.+.
Azurespot


4

Tüm destekleri ve uygulama kitaplıklarını sürüm 19 ile yapılandırmanız gerekir. +

Destek kitaplığını 19. + sürümüyle bırakma önerisi işe yaramazsa AndroidManifest dosyanızdaki bir sonraki ipucunu deneyebilirsiniz.

Önce bu kodu ekleyin:

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

Ve sonra, uygulama düzeyinde (uygulama içinde değil!)

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

4

Burada tüm çözümleri sonuçsuz yapıyorum, bu yüzden başka bir yere bakıyorum ve IDE'yi kandırmanın bir yolunu buldum, bu yüzden Gradle'ın farklı bir tane kullanması için Mainfest'e bir satır koymalısınız. build.gradle üzerine koyduğunuz satır:

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

sadece ve işe yarıyor.

Umut ediyorum bu yardım eder.


3
: eklemeyi unutmayın xmlns:tools="http://schemas.android.com/tools"de <manifest>-etiket
seb

3

Build.gradle dizininden kaldırmanız gerekiyor compile 'com.android.support:support-v13:+'



1

Benim için böyle bir sorun,

minSdkVersion 14

Build.gladdle dosyasında ve hata iletisinde belirtilen dosyayı kullanın

ama sorun şuydu

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

Bu yüzden build.gladdle dosyasında 14'ten 15'e geçtim ve işe yarıyor

bir şans ver.


1

Sadece gerekli hedef minSdkVersionBenim durumumda gerekli birine yani değişiklik minSdkVersionoldu14 .

minSdkVersion 16Sorunu çözmek için değiştirme

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

Unutmayın, build.gradle dosyasını projenizin klasöründe değil, projenizin 'app' alt klasöründe düzenlemelisiniz. Sürüm "L" ile ilgili bir sorunu çözmeye çalışırken bir iş günü kaybettim.


0

Projenizdeki derleme klasörlerini silmeyi deneyin ve sınıf projenizi yeniden oluşturmak için yeniden senkronize edin. Ayrıca, başkalarının bu gönderide söylediği gibi - böyle bir şey yapmak yerine:

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

Bunu yap:

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

0

Teşekkürler @Murtuza. Cevabınız sorunumu çözmeme yardımcı oldu ama benim durumumda

compile 'com.android.support:support-v13:19.+ ayrıca, ile birlikte

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

dan compile 'com.android.support:support-v4:+' compile 'com.android.support:support-v7:+' compile 'com.android.support:support-v13:+' Hope bu bazı bir yardım olabilir


0

L.MR1'i (SDKv22) hedeflediğim bazı projelerim ve KK'yi (SDKv19) tercih ettiğim bazı projelerim var. Sonuçlarınız farklı olabilir, ama bu benim için işe yaradı.

// 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'da: Dosya - Proje Yapısı - Sekme Lezzetleri - Manifest'ten daha yüksek olan Min SDK Sürümünü seçin


0

İkinci çözüm var:

  1. unzip https://dl.dropboxusercontent.com/u/16403954/android-21.zipiçinsdk\platforms\
  2. build.gradle değiştir

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

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

    ile Manifest'te xmlns:tools="schemas.android.com/tools";

  4. Adresine git sdk\extras\android\m2repository\com\android\support\support-v4\21.0.0-rc1\

Paket açma desteği-v4-21.0.0-rc1.aar ve düzenleme AndroidManifest.xml gibi

itibaren

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

için

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

Not Bunu, gereken tüm destek kitaplıklarıyla yapabilirsiniz.


"L" yi değiştirdim ve android stüdyosunu yeniden başlattım, ancak aynı projeyi oluştururken aynı sorunu alıyorum (ctrl + f9)
Ankur Loriya

0

Benim için işe yarayan tek şey şudur:

Project.properties'de değiştim:

cordova.system.library.1 = com.android.support: destek-v4: + 'dan cordova.system.library.1 = com.android.support: destek-v4: 20. +


0

Minimum API Düzeyi'ni Build Settings -> Player Settings -> Other Settings -> Minimum SDK Leveldaha yüksek bir sürüme değiştirirsiniz.


0

En iyi yol, Android Studio'nun sorunu çözmesine izin vermektir.

Aşağıdakileri yaptım ve işe yaradı.

  1. Projenizi Android Studio'da açın, düzeltmek için verilen bir bağlantı varsa hatalar açılır.

  2. Projenizi Android Studio'da yeniden açın, hatalar açılır, bu sefer Adım 1'de verilmezse bir bağlantı olacak, düzeltmek için verilen bağlantıya tıklayın.

Her iki işlemin de birkaç dakika sürdüğünü, ancak tüm sorunları giderdiğini unutmayın.


0

Çözüm: Bildirim birleşmesi başarısız oldu Attribute application @ ppComponentFactory ...

En yeni ve en büyük Firebase kütüphanelerini veya başka kütüphaneleri kullanıyorsanız, bunlar aslında android.support yerine AndroidX kullanıyorlarsa, Manifest birleşmesi başarısız olduğu için sorun yaşayabilirsiniz! Bu durumda, projenizin AndroidX'e taşınması gerekiyor. Bağlantıyı takip edin: https://firebase.google.com/support/release-notes/android#update_-_june_17_2019

Veya bu videoyu izleyin. https://youtu.be/RgveQ4AY1L8 Teşekkür ederim.


Bir çözümün bağlantısı hoş geldiniz, ancak cevabınızın da onsuz da yararlı olduğundan emin olmalısınız. Bağlantının çevresine bağlam eklemek ve hedef sayfanın kullanılamaması durumunda bağlandığınız öğreticinin en alakalı bölümünü açıklamak daha iyidir.
Joey

Senden duyduğuma sevindim #Joey. Biraz ekstra açıklama ekleyeyim. Teşekkürler.
Subhojit Halder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.