SDK の依存不整合 2
〜 Android Studio の使い方 20 〜
2025-02-20 作成 福島
TOP > androidstudio > sdkdepend2

使用ツール

    Android Studio Ladybug Feature Drop | 2024.2.2  


1. 不整合の発生

AndroidStudio を Update したとき等に下記メッセージが表示され、コンパイルが実行できない状態になることがある。
Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version 21 declared
in library [androidx.constraintlayout:constraintlayout:2.2.0]
/…/AndroidManifest.xml as the library might be using APIs not available in 19
    Suggestion: use a compatible library with a minSdk of at most 19,
        or increase this project's minSdk version to at least 21,
        or use tools:overrideLibrary="androidx.constraintlayout.widget" to force usage (may lead to runtime failures)

和訳:
マニフェストの結合に失敗しました: uses-sdk:minSdkVersion の指定 19 は
ライブラリ androidx.constraintlayout で宣言された 21 より小さくすることはできません*1
AndroidManifest.xml においてライブラリは 19 では利用できない API を使用している可能性があります。

 提案: minSdk が最大 19 に互換性のあるライブラリを使用してください。
   または、このプロジェクトの minSdk バージョンを少なくとも 21 に増やしてください。
   または、 tools:overrideLibrary="androidx.constraintlayout.widget" を強制的に使用します。(実行時のエラーを招きます)
*1要するにこの Android Studio では API19 (KitKat:Android 4.4) を諦めて API21 (Lolipop:Android 5.0) 以上を開発しろということ。


2. 対処

下記 2-1 or 2-2 のいずれかを実施する。


2-1. Min SDK Version を設定画面から変更
2-1-1. メニューの   File   -   Project Structure...   Ctrl+Alt+Shift+S   を選択する。

2-1-2. 左ペインから   Modules   を選択する。

2-1-3. Default Config タブの中にある Min SDK Sdk Version を上記  version to at least  で指定された数値以上に変更し、 ボタンをクリックする。
この例では 21 に書き換えている。


2-2. Min SDK Version を設定ファイルから変更
2-2-1. ビルド情報 (モジュール :app) の修正
Android > Gradle Scripts > build.gradle.kts (Module :app) を開く。
android {
      ~省略~
      namespace = 'com.example.android.project'
      compileSdk = 34    

      defaultConfig {
            applicationId = "com.example.android.project"  
            minSdk = 21     ← これ
            targetSdk = 34
      ~省略~
minSdk の指定を上記  version to at least  で提案された数値に書き換える。
この例では  21  に書き換えている。

説明文にある targetSdk, minSdk も、このファイルで指定されている。
2-2-2. ビルド情報の反映
メニュー   File    Sync Project with Gradle Files   Ctrl+Shift+O   を選択する。