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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Android

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

Q&A

解決済

1回答

1671閲覧

「Consumer closed input channel or an error occurred. events=0x9」の意味を教えて欲しい

gottadiveintopy

総合スコア736

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Android

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

0グッド

0クリップ

投稿2019/02/05 14:17

編集2019/02/05 14:27

Kivy Launcherというpythonで書かれたアプリあり、それとPythonインタープリターを含んだAndroidのAPKを作ってAndroid端末上で動作させているのですが、原因の分からないerrorに困っています。Kivy Launcherは別のpythonプログラムを立ち上げるアプリ(名前の通りKivyを使ったPythonプログラムを立ち上げます)で、その際に内部でpyjniusというJavaのclassをPython側から操作する為のmoduleを使ってAndroidのAPIを叩いています。

Kivy Launcherにはstart_android_activity()という関数があるのですが、この関数を以下のように書き換えた所

python

1 def start_android_activity(self, entry): 2 from kivy.logger import Logger # 変更点 A 3 from jnius import autoclass 4 5 PythonActivity = autoclass("org.kivy.android.PythonActivity") 6 System = autoclass("java.lang.System") 7 activity = PythonActivity.mActivity 8 Intent = autoclass("android.content.Intent") 9 String = autoclass("java.lang.String") 10 11 j_entrypoint = String(entry.get("entrypoint")) 12 j_orientation = String(entry.get("orientation")) 13 intent = Intent( 14 activity.getApplicationContext(), 15 PythonActivity) 16 intent.putExtra("entrypoint", j_entrypoint) 17 intent.putExtra("orientation", j_orientation) 18 activity.startActivity(intent) 19 Logger.info("APP: This line will be printed") # 変更点 B このlogは出力される 20 System.exit(0) 21 Logger.info("APP: This line won't be printed") # 変更点 C このlogは出力されない

次のlogが得られました。

I/python (11086): [INFO ] [APP ] This line will be printed W/InputDispatcher( 556): channel '10f1953e jp.gottadiveintopython.launcher/org.kivy.android.PythonActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 E/InputDispatcher( 556): channel '10f1953e jp.gottadiveintopython.launcher/org.kivy.android.PythonActivity (server)' ~ Channel is unrecoverably broken and will be disposed! W/InputDispatcher( 556): Attempted to unregister already unregistered input channel '10f1953e jp.gottadiveintopython.launcher/org.kivy.android.PythonActivity (server)' W/ActivityManager( 556): Force removing ActivityRecord{e013924 u0 jp.gottadiveintopython.launcher/org.kivy.android.PythonActivity t947}: app died, no saved state

C行は出力されず(System.exit(0)がprocessの終了を意味しているのなら納得)、activity.startActivity(intent)で立ち上げたactivityが表示されません。また出てきたerrorをググってもこれといった解決策はみつけられませんでした。どなたか教えてくれると助かります。

他の情報

  • Android端末のOSのversionは 5.0.1
  • apkに組み込んだpythonのversionは3.7.1
  • 一日前にKivy Launcherを正常に動かす事に成功している

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

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

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

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

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

guest

回答1

0

自己解決

このforkを使う事で上記のerrorは起こらなくなりました。errorの意味自体が分かった訳ではありませんが、もはや探る必要は無くなった為 解決済みとします。

投稿2019/07/25 05:58

gottadiveintopy

総合スコア736

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問