はじめに
Flutterで新規アプリケーションを作成してビルドした時、
下記の警告が出ました。
警告が出た状態でも問題なく実行はできますが残しておくのも気持ち悪いので、
こちらを消すためにやったことをご紹介します。
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
原因
結論、「使っているBuildツールのバージョン(Gradleのバージョン)が古い」のが原因です。
Gradleってなに?
ネイティブAndroid開発をしたことない筆者にとって、
Gradleの意味がわかりませんでした。
ざっくりとした理解ですが(違ったら教えてください)
”Gradle”はオープンソースのビルド用のツール
”Gradle Wrapper”Gradleのラッパーです。
どのバージョンのGradleを使うかを指定して、ビルド時にリポジトリから指定のGradleをダウンロードしてビルドします。
”Android Gradle プラグイン”は、Androidアプリをビルドするためのツール。(中でGradle Wrappereを使ってる)
解決策
step1. Androidビルド用Gradleプラグインのバージョンを最新にする
上記サイトから最新版のバージョンを確認します。
2022年4月現在では「7.1.3」が最新でした。
それをandroid/build.gradleファイルのclasspathに反映します。
buildscript {
ext.kotlin_version = '1.6.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
step2. Gradleのバージョンを最新化
次にAndroidビルド用プラグインが使うGradleのバージョンも上げましょう。
使うGradleのバージョンはGradleWrapperの設定ファイルで指定されています。
android/gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
ビルド時にはここに指定したGradleがダウンロードされて実行されるわけです。
余談ですが、build-wrapper.propertiesをgithubに入れてあげるとクローン先でもGradleのバージョン差異がなくなっていいよねというものらしいです。
下記のサイトから最新版を確認して反映してください。