Cannot Run Git : Cannot identify version of git executable: no response – on startup

よく出ますよね?

このダイアログ。

Cannot Run Git : Cannot identify version of git executable: no response – on startup

Cannot Run Git : Cannot identify version of git executable: no response – on startu

調べてみると、IDEA Intellij のバグトラッカーに issue があります。

Even if the CLT is installed, if the background process is heavy (for example, after booting your mac), typing "git --version" into the terminal may result in no response for several tens of seconds.

I've had this issue on Mac a few times after a reboot and auto-reopen of the previous windows.
Easy fix: quit IntelliJ with Cmd+Q and reopen it.

I got this on Windows after a restart. As Filippo says, restarting the IDE works as a fix.

👉 Cannot identify version of git executable: no response – on startup : IDEA-219762 

 

Git の設定

一応、Git の設定画面を見てみましょう。


[Preferences]

  ↓

[Version Control]

  ↓

[Git]

Cannot Run Git : Cannot identify version of git executable: no response – on startu

確認したら、IDE (AndroidStudio など) をリスタートです。

 

まとめ

IDE 再起動でダイアログは出なくなり正常に戻ります。

OS が忙しい時の Git コマンドのレスポンスの遅さが IDE に影響を及ぼしてるようです。

👉 【Homebrew】git が2つある場合 【macOS】 


2021年 人気記事ベスト10 のアクセス増減にみるAndroid界隈

やみくもにアンテナ的に記事を撒いてますのでここで集計しておきます。

1.

👉 Google Play の残高 で LINEスタンプ を買う方法 
Google Play の残高 で LINEスタンプ を買う方法

LINEネタは強い。しかし、機能がリッチになるにつれて、ややこしさを叫ぶユーザーが激増。

国内では今後も一強のメッセージングアプリか。

2.

👉 Google Play ストア アプリのメニューが消えた?! 
Google Play ストア アプリのメニューが消えた

アプリのUI/UXの変更はユーザーをイライラさせることが多い。

これもそう。

アプリの自動更新のための操作と思われ、「自動更新」の意味が問われる。

3.

👉 【Android10】隠し機能の「画面録画機能(screenrecord)」を使うべし 
【Android10】隠し機能の「画面録画機能(screenrecord)」を使うべし

画面の静止画キャプチャだけでなく、それは動画の録画保存にも変化。

文春のキャプチャて受信者以外が一次的に取得できる方法があれば、それは個人情報漏洩。

4.

👉 【Android 公式】正しいアプリの終了方法 ← 
【Android 公式】正しいアプリの終了方法

個別のアプリの完全終了は雰囲気でしかない。

完全に終了すること大事。

再起動は、コールドスタートになるが完全にリフレッシュされている。

5.

👉 Android 端末 キーボード切り替え方法あれこれ 
Android 端末 キーボード切り替え方法あれこれ

キーボードアプリをサードパーティに依存する怖さの認識は甘い。

何のために、Google公式が手間をかけてキーボードアプリに力を入れているのか。

最終的には、Android権限をフルに利用した Google Gboard 一択になるのは時間の問題。

6.

👉 YouTubeに縦長動画をどうアップするべきか? 
YouTubeに縦長動画をどうアップするべきか

視聴するデバイスがPCではなく、いまやスマホ。横長では見づらい。

YouTube は強い。

テレビは数分で消すことになるくらいひどい。

7.

👉 【Android11】ジェスチャーボタン操作が変わっている件 
 【Android11】ジェスチャーボタン操作が変わっている件

OSの勧める新しい操作や機能に合わせていくのが王道。

ジェスチャーボタンについてもそう。

最終的には iPhone と Android は、全く同じになるのでは。

8.

👉 「単語リスト(ユーザー辞書)」が変換候補に表示されない場合 
「単語リスト(ユーザー辞書)」が変換候補に表示されない場合

Android OSの持つ「ユーザー辞書」機能は、開発側になんとなく虐げられてるイメージ。

端末ベンダーやキーボードアプリによっても変わってくるのが混乱の原因。

意図的に削除が必要なキャッシュは常にどこでも問題を引き起こしがちです。

9.

👉 Android端末ユーザー辞書に最新絵文字を追加する方法 
Android端末ユーザー辞書に最新絵文字を追加する方法

キャッシュの削除ともに意識すべきユーザー辞書を使う方法。

メールアドレス、名前、アカウント名、住所、電話番号など、よく使う文字列から登録しまくるのがよい。

10.

👉 Pixel 5 / 4a(5G) / 4a で ahamo は使えるのか 
Pixel 5 / 4a(5G) / 4a で ahamo は使えるのか

結局は、ブロードキャスト側 docomo に任せるしかない。

端末選びは焦らなくて良い。

50GMB出れば、動画もストレスなく見れる。

まとめ

全体的にアクセス数は、2021春をピークに下降。

今後はどうなるのか。


接種証明書アプリ使用時の設定「Reader/Writer, P2P」の意味不明さ

マイナンバーカードが必要

この記事のようにAndroidでは混乱する。

Androidの場合は、

- 設定画面から「Reader/Writer, P2P」をONにしてください。OFFになっている場合、マイナンバーカードを読み取りできません。

- 設定方法:ホーム画面→「アプリ一覧画面」を表示→[設定]→[接続済みの端末]→ [NFC/おサイフケータイ 設定]→[Reader/Writer, P2P]

- 設定画面から「おサイフケータイロック」をOFFにしてください。ONになっている場合、マイナンバーカードを読み取りできません。

- 設定方法:ホーム画面→「アプリ一覧画面」を表示→[設定]→[接続済みの端末] → [NFC/おサイフケータイ 設定]→[NFC/おサイフケータイロック]

- 設定画面から「機内モード」をOFFにしてください。ONになっている場合、マイナンバーカードを読み取りできません。

- 機種によっては、充電中にNFC機能が動作しない場合がございます。充電中である場合は、充電を止めて再試行してください。

- Bluetooth機能をONにしてください。

-利用者クライアントを使用する場合、WindowsPCとスマートフォンをBluetooth接続する必要があります。BluetoothがOFF設定だと接続できません。

-読み取りが全て完了するまで、かざし続けてください。素早くかざしたり、すぐにマイナンバーカードを離したりした場合、正確に読み取りできません。

- かざす位置が最適でない場合、マイナンバーカードを読み取りできません。機種毎のかざす位置は、こちらを確認してください。

- 金属物から離してください。マイナンバーカードとスマートフォンの間に金属物があると読み取れないことがあります。また金属の机においての読取りについても同様となります。

- Bluetooth接続の場合、無線LANとの無線周波数帯が同じため、同時に使用すると 電波が干渉し合い、通信速度の低下や中断、ネットワークが遮断させる場合があり ます。[アプリ一覧]-[設定]-[Wi-Fi]をタップし Wi-FiをOFFに設定したうえで、[アプリ一覧]-[設定]-[ Bluetooth]をタップしBluetooth接続をONに設定してください。

👉 接種証明書アプリ、ちゃんと使えた? iPhoneとAndroidで感じてしまう“格差”:ヤマーとマツの、ねえこれ知ってる?(3/4 ページ) - ITmedia NEWS 

「Reader/Writer, P2P」てのは、「NFC (かざすと反応) 」のことと思って良い。

以下の考え方を押さえておけば問題なく設定はできる。

-「Reader/Writer, P2P」はONにする。

-「NFC/おサイフケータイロック」は解除する。

-「機内モード」はOFFにする。

- Bluetooth は基本関係ない。

別になんの苦労もなくPixelユーザーは証明書をゲットしてるんだろうと思うがどうですか?

👉 COCOA は気にせず普通に アンインストール して良い hatena-bookmark
👉 マイナンバーカードの暗証番号入力間違い回数の確認やリセットする方法 hatena-bookmark

参考

👉 おサイフケータイ®を設定する | NFC/おサイフケータイ® | ツール・アプリケーション | XPERIA™ XZ1(エクスペリア エックスゼットワン)SOV36 | 取扱説明書 詳細版(オンラインマニュアル) | au 
👉 NFC/おサイフケータイ®を利用する 
👉 NFC/おサイフケータイ®を利用する 
👉 【公式】UQ mobile・UQ WiMAX|KDDI・UQコミュニケーションズ 
👉 ヘルプガイド | NFC通信 
👉 Reader/Writer, P2Pとはどこで扱う? - Google Pixel コミュニティ 
👉 Androidマイナンバーカードの読み取り方法 | マイナポイント事業 


日本語文字起こしに対応した「Google レコーダー」が音声入力として最強では?

最近、やっと更新されて日本語でも高精度な文字起こしができるようになりました。

👉 レコーダー - Google Play のアプリ 

レコーダーで、録音した音声を検索できます。会議、講義、バンド練習、家族の思い出など、なんでも録音して保存し、後で再生できます。レコーダーで、録音した音声の文字起こしとラベル付けが自動的に行われるため、大事な情報を簡単に見つけることができます。

✍ 編集

「語句の編集」から聞き直しながら意図する語句に編集できます。

また、録音した音声の前後の不要部分を書き起こし文字を見ながら「切り抜く」ことも可能です。

✍ 共有

以下の形式で共有することができます。

- 音声 (.m4a ファイル)
- 文字起こし (.gdoc .txt ファイル)
- 動画クリップ (.mp4 ファイル)

✍ まとめ

私がよく使うのは、テキスト編集画面から「全選択」でクリップボードへコピーしてからの好きなエディタに貼り付けです。

iPhoneやパソコンからもブラウザ経由で録音、文字起こししたアーカイブを確認できます。

👉 ブラウザ版 Recorder 

以上です。よろしくおねがいします。


MVVM で Hilt のパターン化 💉

シンプルなものにして整理、定型化しておきたい。

「どこに」←「どれを」インジェクトしてるか、とそれの記述をパターン化。

 

💉 View ← ViewModel

MVVM でいうところの View であるこれらに、ViewModel をインジェクトする場合。

コンストラクタからインジェクトできないいわゆる「Androidクラス」。
以下のものがこれに当てはまる。

- Activity
- Fragment
- View
- Service
- BroadcastReceiver

それぞれのクラスに付ける2つのアノテーションと ktx による記述でプロパティにインジェクトする。


@AndroidEntryPoint
class MainFragment : Fragment() {
  private val viewModel: MainViewModel by viewModels()


@HiltViewModel
class MainViewModel @Inject constructor(
  repository: MainRepository
) : ViewModel() {

 


💉 ViewModel ← Repository

Module を使った ViewModel コンストラクタへのインジェクト。

インターフェースの型でリンクする。


@HiltViewModel
class MainViewModel @Inject constructor(
  repository: MainRepository
) : ViewModel() {

Hilt 備え付けの Component でライフサイクルを考慮して、実装型でインジェクトする。

abstract、@Binds は、インターフェースを介す場合の、 @InstallIn( ViewModelComponent::class)、 @ViewModelScoped は、 ViewModel に対してのインジェクトのパターン。


@Module
@InstallIn(ViewModelComponent::class)
abstract class RepositoryModule {

  @Binds
  @ViewModelScoped
  abstract fun bindRepository(impl: DefaultRepository): MainRepository
}

 

💉 Repository ← DataSource

Androidクラスのようなプロパティへのインジェクトとは違う @Module、@Provides を使ったコンストラクタインジェクトの Hilt基本的パターン。

SingletonComponent は、旧 ApplcationComponent で生存期間最長。


class DefaultRepository @Inject constructor(
  private val localDao: LocalDao,
  private val contentResolver: ContentResolver,
  private val sharedPreferences: SharedPreferences
) : MainRepository {


@Module
@InstallIn(SingletonComponent::class)
object DataSourceModule {

  @Provides
  @Singleton
  fun provideLocalDao(
    @ApplicationContext context: Context
  ): LocalDao {
    return LocalDao(context)
  }

 

💉 DataSource ← Context

Context は、 @ApplicationContext と @ActivityContext がすでに用意されているので区別しながらアノテーション1つのみで注入できる。これ便利。


@Module
@InstallIn(SingletonComponent::class)
object DataSourceModule {

  @Provides
  @Singleton
  fun provideLocalDao(
    @ApplicationContext context: Context
  ): LocalDao {
    return LocalDao(context)
  }

しかし、どの位置でも自在にインジェクトしようとするとコケる。


[Dagger/MissingBinding] @dagger.hilt.android.qualifiers.ActivityContext android.content.Context cannot be provided without an @Provides-annotated method.

@Module 直下の @Provides メソッドの引数で使うものですか。

 

build.gradle


buildscript {
  ext.versions = [
    "hilt"       : "2.41",
  ]
  dependencies {
    classpath "com.google.dagger:hilt-android-gradle-plugin:${versions.hilt}"
  }
}

apply plugin: "org.jetbrains.kotlin.kapt"
apply plugin: "dagger.hilt.android.plugin"

dependencies {
  implementation "com.google.dagger:hilt-android:${versions.hilt}"
  kapt "com.google.dagger:hilt-android-compiler:${versions.hilt}"

  androidTestImplementation  "com.google.dagger:hilt-android-testing:${versions.hilt}"
  kaptAndroidTest "com.google.dagger:hilt-compiler:${versions.hilt}"
  testImplementation "com.google.dagger:hilt-android-testing:${versions.hilt}"
  kaptTest "com.google.dagger:hilt-compiler:${versions.hilt}"
}

👉 Gradle Build Setup 

 

💉 まとめ

多少の流儀はあるけど、 Component 記述がなくなっただけでも記述量は大幅に削減できます。

alpha らしく、まだコンポーネント名など変わるんかもしれんが、ここも適宜修正させてもらいます。

👉 【MVVM】 Kotlin Flow で使える5つの利用パターン 
👉 skydoves/Pokedex: 🗡️ Android Pokedex using Hilt, Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture. 
👉 Hilt and Dagger annotations cheat sheet - Android Developers - Medium