1. ホーム
  2. android

[解決済み] Android Studio: AndroidManifest.xml と build.gradle で minSdkVersion と targetSdkVersion の両方を指定する理由は何ですか?

2022-10-14 19:51:47

質問

Android Studioについて、奇妙なことを発見しました。 build.gradle ファイルで指定されたものを上書きしてしまうのです。 AndroidManifest.xml ファイルで指定されたものを上書きします。

例えば、私は以下の行を build.gradle :

android {
    compileSdkVersion 18
    buildToolsVersion "18.1.1"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 10
    }
...
}

で対応するタグをオーバーライドしていた AndroidManifest.xml :

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

同じ設定を2つのファイルに分散させるのはあまり好きではないので、安全な方法で build.gradle または AndroidManifest.xml といったように、どこを残すのがより理にかなっているのかがわかります。

どのように解決するのですか?

Gradle はマニフェスト値を上書きするので、私はマニフェスト値を更新するために build.gradle ファイルを更新することを好みます。おそらく、これがGradleを使う正しい方法です。GradleはIDE経由で制御できるプロダクトフレーバーをサポートしており、それらのプロダクトフレーバーはパッケージ名、バージョンコード、バージョン名、ターゲットSDKなど、マニフェストの多くのものを変更することができます。そして、Android Studioで1回クリックするだけで、多くのプロパティを変更し、別のapkを生成することができます。

マニフェストをそのままにして、すべての設定を build.gradle . を安全に削除することができます。

<uses-sdk></uses-sdk>

バージョンコードと同様にマニフェストから