内容
少し前からGradle 7.1.1にアップデートしろとの案内が出ていたが、対応できずにいたものをまとめて対応。 同じようなタイミングでターゲットSDKも変えたのでもしかしたらそちらの影響もあるかも。
基本的にはUpgrade Assittantが勝手にやってくれるが、
案内通りにすすめると何箇所かでエラーになったので対応した。
以下は比較的特殊な対応だった部分の抜粋
build.gradle.kts(:app)
namespace
の記述
AndroidManifestに書いていたpackage
属性の代わりになる模様。
// build.gradle.kts(:app) android { namespace = "com.hoge.fuga" }
Lintの記述を更新
// Old lint { isCheckDependencies = true isAbortOnError = false isCheckReleaseBuilds = false disable("InvalidPackage") disable("ResourceType") }
// New lint { checkDependencies = true abortOnError = false checkReleaseBuilds = false disable.add("InvalidPackage") disable.add("ResourceType") }
AndroidManifest
package
属性の削除
今後はbuild.gradle
の方でnamespace
を使うらしい
// Old <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hoge.fuga">
// New <manifest xmlns:android="http://schemas.android.com/apk/res/android">
環境ごとの差分ファイルにtools:replace="android:name"
をつける
AndroidManifestが複数ある場合の マージルールの適用が厳格化されたのか、エラーになるようになったので対応。 自分のケースではActivityの重複定義されているという扱いになっていたので優先度の低い方にreplace属性をつけて対応(高い方だとエラーになった)。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <application> <activity android:name=".activity.HogeFugaActivity" android:exported="true" tools:replace="android:name">