質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1811閲覧

android kivy の IME 日本語入力

Mr.Prgrmr

総合スコア4

Kivy

Kivyは、Pythonを用いたNUI開発のためのオープンソースフレームワーク。マルチタッチなど多くの入力に対応したNUIアプリなどを開発することができます。多くの環境で動作するクロスプラットフォームです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/09/13 01:08

編集2022/09/14 00:16

以下の環境で、kivy launchre を使用しandroidアプリを作成しております。
Python v3.8.9
Kivy v2.2.0

テスト的に3本作成したところで、IME 日本語入力 TextInput が正常に動作しない事に気づきました。

入力だけをtkinterでできないかと思いましたが、今度はtkinterは、android に未対応とのこと

android kivy アプリで日本語入力
なんとか実現できないでしょうか?

因みに、日本語の表示は色々ネットに出ておりますようにフォントの明示的指定でできます。
また、直接 kivy上で日本語入力できなくても、別のインターフェースでポップアップ等で入力できれば良いのですが、その術が分かりません。

アドバイスお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.Prgrmr

2022/09/14 00:09

一つ目をやってみましたが駄目でした。 二つ目は残念ながらWindowsでした。 python kivy Android 大変いい開発環境だと思います。 ただ日本語の表示は大丈夫ですが、残念ながら日本語入力が使えません。 返信ありがとうございました。
Chespin

2022/09/16 11:58

日本語入力に切り替えられないのであればkivy自体の以下のバグの影響と思われます。 https://github.com/kivy/kivy/issues/7741 ただ2022/2/16でやり取り止まってしまっているので改善される見込みはかなり低そうです。
Mr.Prgrmr

2022/09/19 23:31

kivy で android 生産性も悪くなく 良い開発環境なのですが、残念です。 Chespinさん、ありがとうございました。
guest

回答2

0

ベストアンサー

こちらはどうでしょうか?TextInputクラスをオーバーライドしてmacOSとandroidでの日本語入力の不具合を回避しています。
https://vucavucalife.com/kivy-on-macos-and-android-textinput-for-japanese/

投稿2022/11/03 03:02

bu1000

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.Prgrmr

2022/11/08 02:57

bu1000様 お世話になります。 ご教授いただきましたサイトを参考に、無事kivyでの日本語IME入力ができました。 一旦kivyを諦めて、PyQtを調査しておりましたが、再びkivyに戻ることにいたします。 大変感謝いたします。ありがとうございました。 ただ別件になるかもしれませんが、日本語フォントの場所_MEIPASSとbuildozer.specの記述方法等、以下が不明です。 1)_MEIPASSにバンドルデータを配置するようにパッケージの作成ができるのでしょうか? 2)1)はbuildozer.specで実現可能でしょうか?可能であればそれをご紹介いただけないでしょうか? 上記、アドバイスいただければ幸いです。
bu1000

2022/11/08 14:23

_MEIPASSのところはAndroid用の記述ではなくて、PyInstallerでexeファイル化したアプリにおいて、Temporaryディレクトリ下にアプリのリソースが展開されるケースのための記述ですね。 というわけで、 1), 2)ともに出来ません、ということになるかと思います。(もし方法が存在していたらごめんんなさい。) ちなみに確認したところ、日本語対応フォントファイルであるipaexg.ttfは Androidでは /data/data/xxxxxxx/files/app に配置されていました。
Mr.Prgrmr

2022/11/14 01:50

bu1000様 ご返信ありがとうございます。 _MEIPASSとbuildozerの件承知いたしました。 試しに、/storage/emulated/0/kivy にフォントを置き実行したところ、kivy Launcher上での実行はできますが、 同一コードを、buildozer.specでapkを作成し、実行したところ、 11-14 09:33:46.775 14581 14602 I python : ValueError: java.io.FileNotFoundException: /storage/emulated/0/kivy/ipaexg00401/ipaexg.ttf: for font /storage/emulated/0/kivy/ipaexg00401/ipaexg.ttf 11-14 09:33:46.775 14581 14602 I python : Python for android ended. となります。 当該フォントファイルのサイズは取得できますので、アプリからのアクセスはできていると思われますが、フォントとしてはこの場所が正しくないということでしょうか? Launcherとapkの実行結果に違いがでるのも分かりませんし、試に教えていただきました /data/data/xxxxxxx/files/app にフォントファイルを手動でコピーする方法も不明です。 知識が無く、また色々調べおりますが解決しません。 度々申し訳ありませんが、アドバイスいただければ幸いです。
bu1000

2022/11/14 09:47

こんにちは。 フォントファイルはapkに含めることができているぽいということなので、 何となくですが、 「フォントとしてはこの場所が正しくない」 であり、フォントファイルへのpathの指定をapk用に修正する必要があるのではないかと推測します。 が、私はKivy Launcherを使用したことがないので、実際のところわかりません。ごめんなさい。 なお、フォントファイルの配置はapkをデバイスにインストールしたら勝手にやってくれるので、フォントファイルを手動でコピーする必要はないです(そのほかのリソースファイルについても同様です)。 本来のご質問内容からも乖離してきていると思いますので、ここはnattokukunさんの状況を再現できる最小構成のコード、specファイルの内容、それから詳細なログを記載した新たなご質問を作成されて広く回答を募った方が早期解決につながるのではないかと思います。私も何か分かったら情報共有できるようにいたします。
Mr.Prgrmr

2022/11/15 00:47

bu1000様 ご返信ありがとうございます。 試に、今回の件に関しまして、標準のフォントを使用して resource_add_path("/system/fonts") LabelBase.register(DEFAULT_FONT, "NotoSansCJK-Regular.ttc") であれば、launcherもapkも大丈夫でしたので、これでしのぎたいと思います。 となりますと、私の疑問点は 1)launcherとapkと何故動作が違うのか 2)buildozerでリソースファイル等のインストール方法 となります。 > 本来のご質問内容からも乖離してきていると思いますので、 失礼しました。ご指摘の通りです。別途質問いたします。 ありがとうございました。
guest

0

こちら
Python 3.9.12
Kivy 2.1.0
でandroidアプリを作ろうとしています。同じ様に日本語入力で困っています。

根本的な解決にはならないものの、
キーボードをGboardではなく、
Google Play Storeから入手できる
「Microsoft SwiftKey Keyboard」
または
「flick」
というキーボードアプリに切り替えることで日本語入力ができるようになることがわかりました。
(でも、いちいちこれらのアプリに切り替えてもらうのはアレなので他の方法がないか今も探し中です。)

ちなみに、androidで日本語キーボードを選択できるようにするだけなら、
KivyでのTextInputを定義しているところで、kv言語であれば
input_type: 'text'
を記述しておけば日本語キーボードを選択したときにちゃんと切り替わるようになります。
ただし、Kivy(pyファイルから起動したもの)での日本語入力と同様に挙動がおかしいままです(二重入力になったり、バックスペースが効かなかったり)。

nattokukunさんの用途にあってるかどうかわかりませんが、もしかしてお役に立つかもと思い回答してみました。

投稿2022/09/18 06:20

編集2022/09/19 14:31
bu1000

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mr.Prgrmr

2022/09/19 23:36

bu1000さん、ありがとうございます。 私の問題にしているところは、まさに以下の箇所です。 > Kivy(pyファイルから起動したもの)での日本語入力と同様に挙動がおかしいままです >(二重入力になったり、バックスペースが効かなかったり) 何か進展がありましたら是非情報をいただきたく思います。 私も情報発信いたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問