hamburger-tech-nits

主にプログラミングのNITSな話

Manifest merger failed : android:exported needs to be explicitly specified for element <activity#~

社内ライブラリのtargetSdkVersionを30から33に上げたらビルドエラーになった

* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : android:exported needs to be explicitly specified for element <activity#${Activity}>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

developer.android.com

アプリ コンポーネントに LAUNCHER カテゴリが含まれている場合は、android:exported を true に設定します。他のほとんどの場合は、android:exported を false に設定します。

AndroidManifest.xmlのactivityタグに、android:exported="true" を追加したら解決した。

〇〇-playgroundのリポジトリに書き捨てコードを登録する

課題感

ちょっとしたコードの置き場所がちゃんと定まっていなくて毎回悩んでいた。例えば、

  • webエディタ(Kotlin Playgroundやdartpadなど)
  • gistに登録
  • 専用リポジトリを作る

とか。ただgithubを使わないと後から発掘できなくなったり、新規リポジトリ作るのは書き始めるのに少し時間がかかったりと、コレジャナイ感がある。

同僚とのmtgにて

同僚と画面共有しながらmtgしたときに、保有する個人リポジトリがちらっと見えた。そこには表題のような複数の言語の〇〇-playgroundリポジトリが並んでいて、書き捨てのスクリプトなどが登録されていた。確かにこれなら毎回リポジトリ登録する必要は無いし、後からある程度目星をつけやすくなる。

構成的にはモノリポになるので、もし必要ならコード共有も楽だし、別端末を使うときにクローンも楽。良さそう。

flutter-playgroundを作ってみた

作ってみた。Flutterの何かを試すときに入れることにした。

github.com

手始めにuiウィジェットを試すプロジェクトを登録した。デフォルトのボタンとかテキストテーマとかを試せているので、色々発見があった。

着手するハードルが下がったはずなので、今までよりはコードを書く頻度が増えると良いなぁ。