2011-12-05 6 views
2

Kivy 앱의/etc/hosts에 쓰기를 원합니다. 테스트 할 루트 장치가 분명히 있습니다. 몇 가지 방법을 시도했지만 항상 경고 또는 오류없이 내 앱을 종료합니다.Android 용 Kivy를 사용하여 루트로 파일을 읽거나 쓰는 방법은 무엇입니까?

이 나는 ​​시도했다 : 그들 중

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 응용 프로그램 메시지 상자에 권한을 묻는 메시지가 표시되고 "허용"을 눌렀지만 그 후에 내 앱이 종료됩니다.

편집 : 사람이 어떤 제안을 줄 수있는 경우 로그 캣 출력은 http://pastebin.com/YMT5Vxra

많은 감사에서입니다!

+0

그 후에 코드가 있습니까? ['''time.sleep (5)'''] (http://docs.python.org/library/time.html#time.sleep)을 사용하여 5 초간 기다리십시오. '''touch''가 실행을 끝내기 전에 프로그램이 종료되었을 수 있습니다. – FakeRainBrigand

+0

프로그램이 Kivy 플랫폼 아래에 있습니다.이 코드를 버튼 클릭 이벤트에 바인딩합니다. 하지만 그냥 조용히 종료됩니다. –

+0

"adb logcat"에서 로그를 게시 할 수 있습니까? 뭔가 잘못되었을 때 Kivy/Python이 예외를 출력합니다. – tito

답변

2

오류는 문자열 이스케이프가 알려진 인코딩이 아님을 나타냅니다. Kivy는 예를 들어 모든 인코딩이 아닌 libs와 함께 라이트 버전의 파이썬을 배포하고 있습니다.

  • 개인/lib 디렉토리/인코딩
  • 이 디렉토리에 복사 (은/usr/lib 디렉토리/python2에 컴퓨터에서 파일로 이동

    • 잡아 파이썬를 위해 안드로이드 프로젝트 : 당신이 시도 할 수있는 것은에에게 있습니다. 7/인코딩/string_escape.pyo)
    • 응용 프로그램 그리고

    가 해결해야 다시.

    kivy가 원하는 파일을 제공하지 않는 한 pgs4a-kivy 프로젝트가 좋지 않습니다. 이것이 내가 python-for-android 프로젝트를 시작한 이유입니다. 최종 배포본에서 원하는 것을 얻을 수 있습니다.

  • +0

    링크가 죽었습니까 ?? –

    관련 문제