2

Kivy アプリで /etc/hosts に書き込みたいのですが、ルート化されたデバイスをテストする必要があります。いくつかの方法を試しましたが、常に警告やエラーなしでアプリが終了します。

私はもう試した:

subprocess.Popen("su -c touch /etc/hosts", shell = True)

subprocess.Popen("su -c bash -c touch /etc/hosts", shell = True)

subprocess.Popen(["su", "-c", "bash -c touch /etc/hosts"])

およびそれらのいくつかの組み合わせ。許可を求めるsu appメッセージボックスを取得するたびに「許可」を押しましたが、その後アプリが終了します。

編集: logcat の出力はhttp://pastebin.com/YMT5Vxraにあります

誰かが提案を与えることができれば、どうもありがとう!

4

1 に答える 1

2

あなたのエラーは、string-escape が既知のエンコーディングではないことを示しています。Kivy は、たとえばすべてのエンコーディングではなく、ライブラリを含む Python の軽量バージョンを出荷しています。あなたが試すことができることは次のとおりです。

  • python-for-android プロジェクトをつかむ
  • private/lib/encodings に移動します
  • ファイルをコンピューターからこのディレクトリ (/usr/lib/python2.7/encodings/string_escape.pyo) にコピーします。
  • アプリケーションを再構築する

それならうまくいくはずです。

pgs4a-kivy プロジェクトは、kivy が必要なファイルを出荷しないとすぐには良くありません。これが、python-for-androidプロジェクトを開始した理由です。最終的なディストリビューションで、必要なものとそうでないものの力を手に入れることができます。

于 2011-12-05T14:49:46.923 に答える