Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /app/build/outputs/mapping/debug/missing_rules.txt

Android Gradle プラグインを 8.1.1 にアップデートしたら以下のエラーでビルドできない。

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /app/build/outputs/mapping/debug/missing_rules.txt.

Missing class com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader (referenced from: java.util.List kotlinx.coroutines.internal.FastServiceLoader.load(java.lang.Class, java.lang.ClassLoader))

Caused by: [CIRCULAR REFERENCE: com.android.tools.r8.utils.b: Missing class com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader (referenced from: java.util.List kotlinx.coroutines.internal.FastServiceLoader.load(java.lang.Class, java.lang.ClassLoader))]

メッセージにある missing_rules.txt ファイルを確認します。

一度、直上の debug ディレクトリで Reload from Disk すると現れます。

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /app/build/outputs/mapping/debug/missing_rules.txt.

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /app/build/outputs/mapping/debug/missing_rules.txt.


# Please add these rules to your existing keep rules in order to suppress warnings.
# This is generated automatically by the Android Gradle plugin.
-dontwarn com.google.protobuf.java_com_google_android_gmscore_sdk_target_granule__proguard_group_gtm_N1281923064GeneratedExtensionRegistryLite$Loader

# Please add these rules to your existing keep rules in order to suppress warnings.

# 警告を抑制するには、これらのルールを既存のキープ ルールに追加してください。

ということなので、そのまま proguard-rules.pro に追加するとビルドできるようになりました!

こんな機能あったのか、と思い調べてみると、AGP 7.0.0 で追加されていたのですね。

AGP は欠落している可能性のあるルールをすべて含むファイルを生成し、app/build/outputs/mapping/release/missing_rules.txt のようなファイルパスに書き込みます。警告を無視するには、proguard-rules.pro ファイルにルールを追加します。

👉 Android Gradle プラグインのリリースノート  |  Android デベロッパー  |  Android Developers hatena-bookmark

ということで R8 による難読化で発生するエラーの特定も簡単になっています。

ますます便利になっていきます Android Studio。

👉 support obfuscating protobuf message fields [144631039] - Visible to Public - Issue Tracker hatena-bookmark



【Mac】絵文字 や GitHubショートコード は「GitHub Emoji Picker」で入力する 😀

 

😀 Mac内蔵 絵文字ビューア

普通に絵文字を入力する場合は以下でいけます。


- Control+Command+スペースバー を押します。

👉 Macで絵文字と記号を使用する - Apple サポート (日本) hatena-bookmark

 

【Mac】GitHub 絵文字ショートコードは「GitHub Emoji Picker」で 😀

絵文字ビューアが開いたら好きな絵文字をダブルクリックすると入力できますね。
【Mac】GitHub 絵文字ショートコードは「GitHub Emoji Picker」で 😀

しかし、この方法で入力しているのはショートコードではありません。生絵文字です。

 

😀 GitHub ショートコード

Unicode 絵文字のうち、頻繁に使うであろう絵文字を厳選したものの中から、「GitHub ショートコード」をクリックでクリップボードにコピーできます。

GitHub Emoji Picker
👉 GitHub Emoji picker hatena-bookmark

WEBサイトですので Chrome や Safari などブラウザアクセスできます。

ショートコードでなく、生の絵文字をコピーしたい場合は、「Shift を押しながらクリック」します。

Unicode 絵文字のうち、頻繁に使うであろう絵文字を厳選したものの中から、「GitHub ショートコード」をクリップボードにコピーできます。

ということで、このサイトでは、ショートコード と 生絵文字 の両方を入力できます。

ただし、先程も言ったように、すべての絵文字ではなく「厳選された絵文字」のみです。

 

😀 Dock に入れておく

便利なよく使うツール系WEBサイトは、アプリのように Dock に入れておくと便利です。

【Mac】GitHub 絵文字ショートコードは「GitHub Emoji Picker」で 😀

「GitHub Emoji picker」をブラウザで開いた状態から、
ブラウザのURLバー内の「open this link, choose an app」→ 「Open」して、

【Mac】絵文字 や GitHubショートコード は「GitHub Emoji Picker」で入力する 😀

Dock 内に表示されたら、「Keep in Dock」で Dock 内に保存する。

【Mac】絵文字 や GitHubショートコード は「GitHub Emoji Picker」で入力する 😀

これで、Dock からアプリのようにサイトを表示して使用できます。

表示サイズは、ブラウザと同様の操作で変更しておけば記憶され、起動時にそのサイズで起動表示されるようになります。

 

😀 まとめ

ショートコードは、サービスやアプリケーションで異なるのが面倒っちゃあ面倒です。

生絵文字を貼っても、実質、サービス側で変換されるようなので、Mac内蔵の絵文字ビューアでもいいような気もしますが、「厳選された絵文字」なので不必要に絵文字選択を悩むことがない、のがいいように思えたりもします。

👉 【Kotlin】絵文字を含む Unicode 文字列の文字数をカウントする方法と文字ごとの構成要素 hatena-bookmark
👉 絵文字が意図しない白黒で表示される ➡️ - Unicode Variation Selector hatena-bookmark


【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

iPhone で動画や音声の視聴中によく通信が止まってしまうことが多くありますよね!

私だけかもしれませんが!

👉 ドコモの「データ詰まり(パケ詰まり)」が起こったらどうする? 夏までにどうにかなる?:Mobile Weekly Top10 - ITmedia Mobile hatena-bookmark

ネットで調べてみると、対応方法としては以下。


- 機内モード ON → OFF を行う

- モバイルデータ OFF → ON を行う

- 端末再起動

- 移動する

端末の再起動は時間がかかるので以下2つの方法を簡単に素早くできるように、ということでショートカット化しておきます。

 

📱 機内モード ON → OFF を行う

設定画面で「機内モードON→OFFを行う」操作をショートカット化します。

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット


機内モードをONにする

  ↓

5秒待つ

  ↓

機内モードをOFFにする

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

こんな感じで実行されます。

公開しておきます。ダウンロードできます。

https://www.icloud.com/shortcuts/6032d17a734b46d3b0e647185d3fd08d

👉 Airplane Mode ON → OFF hatena-bookmark

ノーコードとか好きな人はショートカットで自分で作ってみる方が良いですよ。

 

📱 モバイルデータ OFF → ON を行う

設定画面で「モバイルデータOFF→ONを行う」操作をショートカット化します。

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット


モバイルデータをOFFにする

  ↓

5秒待つ

  ↓

モバイルデータをONにする

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

こちらも。

https://www.icloud.com/shortcuts/79776fa56551441c9b9c1df7e1adf263
👉 Reset Cellular hatena-bookmark

 

📱 ショートカットのアイコンをホームに置く

ショートカットはホームにアイコンとしておいておけば、素早く操作できますね!

作成したショートカットを「ショートカット」から開いてホームに追加します。

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット 📱

ショートカットにしておくと Siri からも呼び出せるですが、街中でなんかいやです。

 

📱 まとめ

キャリアが行う通信の規格の変更時には、こういうことありがちです。

【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット
【iPhone】「パケ詰まり」「パケ止まり」を修復するショートカット

4G と 5G の過渡期の不具合のようなので、暫定的に、シンプルなショートカットで対応しておくといいのかな、と思い作ってみました。

テストにもなるし、テストにも使えるし。

👉 ahamoは本当に海外だと快適に通信できるし20GBもローミングで使えるので基本困らないのでおすすめ「ただし東京では通信が不安定」 - Togetter hatena-bookmark