もうすぐAndroid 12がリリースされるので、最低限対応した内容をメモする。
Android Studio AF対応
- 新AndroidStudioにビルドツールを切り替えた
UnitTestをRobolectricからInstrumentation Testをメインに変更
- Android Studio AFから、Robolectricが実行しづらくなった(できなくはないが、使いにくい)
- なので、Instrumentation Testのみを行う方向に切り替えた
- それに合わせてCIも変更した
- CIでエミュレータを作成&起動してInstrumentation Test
Lint対応
- Android 12でLint系が更新されたので、チクチクと変更
Activity.exported
属性の対応
- AndroidManifest.xmlのActivityタグで、exported属性設定が必須になった
- 内部・外部を問わず、aar内部で利用されているActivityにも適用されるので、ライブラリが古いとビルドが通らない場合がある
- ビルドツールチェインがタコなので、問題が起きてももとのライブラリ名が不明
抽出
- API 30の状態でapkをビルド -> 分解してAndroidManifest内のActivityを総チェック
- exported属性がついていないActivityを洗い出して修正
androidx.test
が内部で使用しているActivityも、古いバージョンだとexported属性が付いてないのでバージョンを更新
PendingIntentのフラグが厳密化されたので対応
androidx.work
ライブラリはalpha版に切り替えないといけないので、stableが早く出てほしい