Android で Gboard を使って日本語入力が出来ない

バグ報告

現在トライアルで利用してます。快適にメモが出来て気に入っているのですが、一点どうしても出来ないことがあるので報告させてください。

Gboard で日本語に切り替えるために地球儀マークを押しても日本語に切り替わりません。押しても変わらずに、英語キーボードのままです。
ただし件名の欄では正常に切り替えられます。

利用環境

  • Platform: Android
  • Platform version: (8.0.0)
  • App Version: (2.0.0)

Galaxy note 8

再現方法

ノート入力画面に移動して、地球儀マークをタップする。

Ichiroさん

ご報告ありがとうございます。
日本語キーボードが表示されないとのことですね。それは奇妙ですね。
当方Moto G5(Android 7.0)で動作確認を行っていて、同じくGboardを使用しているのですが以下の通り問題は発生していません。

また、ベータ時に他の日本ユーザさんにも動作確認をしていただいたのですが、そのような報告はありませんでした。
Android 8.0では @Yuko_Otawara さんによって動作確認(Huawei P10)されていますので、OSバージョンが原因とは考えにくいです。
なので機種依存の可能性があります。
再現でき次第対応したいと思います。
他になにか考えられる原因など分かりましたらご報告ください。

返信早いですね!ありがとうございます。
もうちょっと細かく調査して分かったことがあれば、また報告しますね。

1 Like

ちなみに、エディタはWebViewで実装されています。
他のアプリのWebView内でも同じような現象が起きていないか確認してみてください。
なにかヒントになるかもしれません。

ありがとうございます。
WebView で実装されている他のアプリって、あまり知らないのですが、知っていればひとつ教えてもらっても良いです?

あと adb logcat して切り替えキーを連打したときのログを一応貼っておきます。
役に立つかわかりませんが・・・。

06-23 13:30:45.202  1565  2089 D InputReader: Input event(12): value=1 when=17900444915000
06-23 13:30:45.202  1565  2089 D InputReader: Input event(12): value=1 when=17900444915000
06-23 13:30:45.202  1565  2089 I InputReader: Touch event's action is 0x0 (deviceType=0) [pCnt=1, s=0.5553 ] when=17900444915000
06-23 13:30:45.204  1565  2088 I InputDispatcher: Delivering touch to (3378): action: 0x4, toolType: 1
06-23 13:30:45.204  1565  2088 I InputDispatcher: Delivering touch to (3378): action: 0x4, toolType: 1
06-23 13:30:45.204  1565  2088 I InputDispatcher: Delivering touch to (2893): action: 0x0, toolType: 1
06-23 13:30:45.204  2893  2893 D ViewRootImpl@e46726c[InputMethod]: ViewPostIme pointer 0
06-23 13:30:45.214   629   629 D SEC LightsHAL: lcd : 12542 +
06-23 13:30:45.218   629   629 D SEC LightsHAL: lcd : 12542 -
06-23 13:30:45.223  2893  2893 D ViewRootImpl@e46726c[InputMethod]: Relayout returned: old=[0,63][1080,2220] new=[0,63][1080,2220] result=0x1 surface={valid=true 512021549056} changed=false
06-23 13:30:45.230   635   635 I android.hardware.wifi@1.0-service: getLinkLayerStats
06-23 13:30:45.231   629   629 D SEC LightsHAL: lcd : 12540 +
06-23 13:30:45.236   629   629 D SEC LightsHAL: lcd : 12540 -
06-23 13:30:45.248   629   629 D SEC LightsHAL: lcd : 12538 +
06-23 13:30:45.250  1565  4353 V WindowManager: Relayout Window{e20d5d1 u0 InputMethod}: viewVisibility=0 req=1080x2220 WM.LayoutParams{(0,0)(fillxwrap) gr=#50 sim=#20 ty=2011 fl=#800108 pfl=0x1000000 fmt=-2 wanim=0x1030056 vsysui=0x310 needsMenuKey=2 colorMode=0 naviIconColor=0}
06-23 13:30:45.254   629   629 D SEC LightsHAL: lcd : 12538 -
06-23 13:30:45.255  2893  2893 D ViewRootImpl@e46726c[InputMethod]: Relayout returned: old=[0,63][1080,2220] new=[0,63][1080,2220] result=0x1 surface={valid=true 512021549056} changed=false
06-23 13:30:45.264   629   629 D SEC LightsHAL: lcd : 12536 +
06-23 13:30:45.268   629   629 D SEC LightsHAL: lcd : 12536 -
06-23 13:30:45.281   629   629 D SEC LightsHAL: lcd : 12534 +
06-23 13:30:45.286   629   629 D SEC LightsHAL: lcd : 12534 -
06-23 13:30:45.297   629   629 D SEC LightsHAL: lcd : 12532 +
06-23 13:30:45.298  1565  2089 D InputReader: Input event(12): value=0 when=17900545621000
06-23 13:30:45.298  1565  2089 D InputReader: Input event(12): value=0 when=17900545621000
06-23 13:30:45.298  1565  2089 I InputReader: Touch event's action is 0x1 (deviceType=0) [pCnt=1, s=] when=17900545621000
06-23 13:30:45.298  1565  2088 I InputDispatcher: Delivering touch to (2893): action: 0x1, toolType: 1
06-23 13:30:45.298  2893  2893 D ViewRootImpl@e46726c[InputMethod]: ViewPostIme pointer 1
06-23 13:30:45.298   629   629 D SEC LightsHAL: lcd : 12532 -
06-23 13:30:45.313   629   629 D SEC LightsHAL: lcd : 12530 +
06-23 13:30:45.316   629   629 D SEC LightsHAL: lcd : 12530 -
06-23 13:30:45.330   629   629 D SEC LightsHAL: lcd : 12528 +
06-23 13:30:45.333   629   629 D SEC LightsHAL: lcd : 12528 -
06-23 13:30:45.339  1565  2089 D InputReader: Input event(12): value=1 when=17900587187000
06-23 13:30:45.339  1565  2089 D InputReader: Input event(12): value=1 when=17900587187000
06-23 13:30:45.339  1565  2089 I InputReader: Touch event's action is 0x0 (deviceType=0) [pCnt=1, s=0.5554 ] when=17900587187000
06-23 13:30:45.340  1565  2088 I InputDispatcher: Delivering touch to (3378): action: 0x4, toolType: 1
06-23 13:30:45.340  1565  2088 I InputDispatcher: Delivering touch to (3378): action: 0x4, toolType: 1
06-23 13:30:45.340  1565  2088 I InputDispatcher: Delivering touch to (2893): action: 0x0, toolType: 1
06-23 13:30:45.340  2893  2893 D ViewRootImpl@e46726c[InputMethod]: ViewPostIme pointer 0
06-23 13:30:45.347   629   629 D SEC LightsHAL: lcd : 12526 +
06-23 13:30:45.349   629   629 D SEC LightsHAL: lcd : 12526 -
06-23 13:30:45.355  2893  2893 D ViewRootImpl@e46726c[InputMethod]: Relayout returned: old=[0,63][1080,2220] new=[0,63][1080,2220] result=0x1 surface={valid=true 512021549056} changed=false
06-23 13:30:45.365   629   629 D SEC LightsHAL: lcd : 12524 +
06-23 13:30:45.365   629   629 D SEC LightsHAL: lcd : 12524 -
06-23 13:30:45.381   629   629 D SEC LightsHAL: lcd : 12522 +
06-23 13:30:45.386   629   629 D SEC LightsHAL: lcd : 12522 -
06-23 13:30:45.397   629   629 D SEC LightsHAL: lcd : 12520 +
06-23 13:30:45.401   629   629 D SEC LightsHAL: lcd : 12520 -
06-23 13:30:45.414   629   629 D SEC LightsHAL: lcd : 12518 +
06-23 13:30:45.416  1565  3535 V WindowManager: Relayout Window{e20d5d1 u0 InputMethod}: viewVisibility=0 req=1080x2220 WM.LayoutParams{(0,0)(fillxwrap) gr=#50 sim=#20 ty=2011 fl=#800108 pfl=0x1000000 fmt=-2 wanim=0x1030056 vsysui=0x310 needsMenuKey=2 colorMode=0 naviIconColor=0}
06-23 13:30:45.417   629   629 D SEC LightsHAL: lcd : 12518 -
06-23 13:30:45.422  2893  2893 D ViewRootImpl@e46726c[InputMethod]: Relayout returned: old=[0,63][1080,2220] new=[0,63][1080,2220] result=0x1 surface={valid=true 512021549056} changed=false
06-23 13:30:45.432   629   629 D SEC LightsHAL: lcd : 12516 +
06-23 13:30:45.434   629   629 D SEC LightsHAL: lcd : 12516 -
06-23 13:30:45.448   629   629 D SEC LightsHAL: lcd : 12514 +
06-23 13:30:45.453   629   629 D SEC LightsHAL: lcd : 12514 -
06-23 13:30:45.457  1565  2089 D InputReader: Input event(12): value=0 when=17900704846000
06-23 13:30:45.457  1565  2089 D InputReader: Input event(12): value=0 when=17900704846000
06-23 13:30:45.457  1565  2089 I InputReader: Touch event's action is 0x1 (deviceType=0) [pCnt=1, s=] when=17900704846000
06-23 13:30:45.457  1565  2088 I InputDispatcher: Delivering touch to (2893): action: 0x1, toolType: 1
06-23 13:30:45.459  2893  2893 D ViewRootImpl@e46726c[InputMethod]: ViewPostIme pointer 1
06-23 13:30:45.464   629   629 D SEC LightsHAL: lcd : 12512 +
06-23 13:30:45.466   629   629 D SEC LightsHAL: lcd : 12512 -

普段Androidを使わないので確信は無いのですが、Pocketはメモしたページをアプリ内で開くときにWebViewを使っているはずです。

ログありがとうございます!
読んでみたのですが、「InputMethodのレイアウトが変更されなかった」という事実しか分かりませんでした。

こんにちは :grinning:

Gboard は普段使用していないので、改めて私の方でも確認してみました。
(前述されていますが、私の環境は Huawei P10 Plus/Android 8.0 です)
※Beta の報告時に「Plus」の部分を書き忘れていました。。すみません。

確認してみたところ、確かに意図せぬ動きかなという動作なのですが、申告とも違う動き方に見えます。

私の環境では、以下のような遷移をします。

以下では「→」のタイミングで地球儀マークをタップしています

Gboard (日本語) → Gboard (英語) → インストール済みの他入力アプリ(※)

※タイミングによってこの他入力アプリも、切り替わり先が異なるようです。昨日確認したときは「Google 日本語入力」に切り替わっていましたが、今確認したら「CodeBoard IME」に切り替わりました。この切り替わり先が変わってしまう原因は分かりませんが……

以上です。

何かの参考になれば幸いです。

Otawaraさん、ありがとうございます!

私も Google日本語入力ではうまくいきました。
しかし Gboard(日本語) は出てきません。

Gboard(日本語) は無効にして Gboard(英語)/Google日本語入力にしたら、とりあえず不自由なくなったので、しばらくこれで使ってみます。

Otawara さんのこちらの返信で Google日本語入力を入れて気がついたのですが、 @craftzdog がアップされていたキーボードの画像を確認すると、もしかしてこれ は Google日本語入力のキーボードではないかと思いました。

もし Gboard(日本語) だと 左上に G マークがありそうだな、と思って・・。

それと他の上手くいくキーボードと比べてみると、 キーボードの設定画面に Gboard だけ「多言語入力」となっていたので、このあたりが関係しているのかもと思いました。
ご参考になれば。

とりあえず私は Google日本語入力との併用で試用を継続してみます。
サポートありがとうございます。

@Yuko_Otawara さん、 @Ichiro_Nakatani さん

情報ありがとうございます。すみません、ご指摘の通り僕はGboardではなくGoogle日本語入力を使用していました。

まずこの現象の原因を技術的に説明します:
アプリのエディタはGboard(英語)の入力補完機能と相性が悪く、挙動に支障が出るため無効にする必要がありました。
そこで、キーボードがGboardの時に限ってinputTypeをパスワード(TYPE_TEXT_VARIATION_VISIBLE_PASSWORD)に指定するようにしました。
しかしその副作用は、Gboardで他言語のキーボードに切り替えられなくなることでした。
なぜなら、Androidアプリ側からはキーボードの種別が「Gboardかどうか」しか知るすべがなく、Gboardの「どの言語か」までは判別出来ないからです。
つまり、Gboard(日本語)にした時を検知して、inputTypeをもとに戻す事が技術的にできそうにありません。

考えられる解決方法は、アプリのエディタとGboard(英語)の入力補完機能との相性の悪さを解消するしかなさそうです。
この問題はかなり複雑で、時間がかかりそうです。

ご不便をおかけしますが、Google日本語入力を併用して頂きますようお願いします。

Related issue

1 Like

v2.3.0にて、試験的にですが設定からGboardを許可できるようにしました。
これでGboardの日本語入力が出来るようになります。
ただし、英字入力は不安定ですのでご注意ください。これは既知の問題ですが現在解決不能です。
回避するにはGboardの設定のsuggestionsを無効にしてください。

この問題は将来的に解決できる可能性があります。
アプリ内で使用しているエディタコンポーネントのCodeMirrorがモバイル対応を視野に入れて再構築中です。

ひとまず本トピックは解決済みとしたいと思います。

続報です。
根本解決方法が見つかったので念のためこちらでもシェアしておきます:

おおー、ありがとうございます。
私はすでにiPhoneに戻っているので、現在は不便は感じてないのですが、次にAndroidを使う時には試してみますね!

ベータにて上記の解決方法をテストしていましたが、上手く動いている様子なのでv3.2.0を正式にリリースしました。
これをもって本トピックは解決済みとしたいと思います。
ご協力ありがとうございました!