はじめに
AGP8.0がリリースされたのは去年の4月ごろなのでもう1年が経過しているのですね。
本当にあっという間だと感じますが、AGP8以前はmanifestのnamespace設定は警告表示となっていました。
ですがAGP8からはgradleへの記述が必須になりましたので、詳細などを備忘録的にまとめたいと思います。
gradleへ記述が必須となった背景
以前のAGPバージョンでは、アプリケーションIDとパッケージ名を区別していましたが、Manifestでパッケージ名が定義され、Gradle内でアプリケーションIDが設定される形となることで混乱を招くと判断し、Gradleへの記述が必須となったようです。
また、AGP 8.0以降では、プロジェクトごとに一意のnamespaceを指定することが必須になったことにより、コードとリソースが一貫性のある名前空間内で管理されるようになります。
それによりビルドパフォーマンスの向上するとのこと。
設定方法
これは非常に簡単で、app以下のgradleへnamespace設定を記述するのみです。
android {
namespace 'com.example.myapp'
...
}
また、モジュール単位でnamespaceを設定する必要がある点は注意が必要です。
ちなみにAGP8以上でnamespaceをmanifestへ記述していると、以下エラーが表示されます。
Namespace not specified. Please add 'namespace' to your module's build.gradle file.
さいごに
RaspberryPi5で遊んでいますが、本当にパフォーマンス上がりましたねー
昔はだいぶしんどかったのに、もうミニPCとしても普通に使えるレベル、、、