eaglesakuraの技術ブログ

技術的な話題とか、メモとか。

Android12対応でやったこと

もうすぐAndroid 12がリリースされるので、最低限対応した内容をメモする。

Android Studio AF対応

  • 新AndroidStudioにビルドツールを切り替えた

UnitTestをRobolectricからInstrumentation Testをメインに変更

  • Android Studio AFから、Robolectricが実行しづらくなった(できなくはないが、使いにくい)
  • なので、Instrumentation Testのみを行う方向に切り替えた
  • それに合わせてCIも変更した

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が早く出てほしい