2017-11-07 1 views
1

저는 최근에 내 PC에서 kivy로 작성한 일부 프로그램으로 안드로이드를 타겟팅하기 시작했습니다.하지만 내 휴대폰에 설치하고 설치 한 후에 urllib가 보이지 않는 것 같습니다. 받아 들일 수있는 URL을 내가 그것이 내 PC에 완벽하게 작동한다는 사실에도 불구하고 피드. 또한 urllib을 사용하여 인터넷에 연결하는 kivy 위젯은 정확히 같은 방식으로 실패합니다. 여기 Kivy : AsyncImage와 Urllib는 안드로이드에서 아무 URL도 열지 않습니다.

몇 가지 예제 코드입니다 :

from kivy.app import App 
from kivy.uix.image import AsyncImage 

class TestApp(App): 
    def build(self): 
     return AsyncImage(source="http://kivy.org/logos/kivy-logo-black-64.png") 

TestApp().run() 

응용 프로그램이 실행될 때,이 로그 캣에 나타납니다 : 내가 제출 한 URL이기 때문에

11-07 15:50:10.400 3741 4686 I python : [INFO ] [GL   ] 
Using the "OpenGL ES 2" graphics system 
11-07 15:50:10.400 3741 4686 I python : [INFO ] [GL   ] 
Backend used <gl> 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
OpenGL version <b'OpenGL ES 3.1 [email protected] ([email protected])'> 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
OpenGL vendor <b'Qualcomm'> 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
OpenGL renderer <b'Adreno (TM) 420'> 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
OpenGL parsed version: 3, 1 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
Texture max size <16384> 
11-07 15:50:10.410 3741 4686 I python : [INFO ] [GL   ] 
Texture max units <16> 
11-07 15:50:10.470 3741 4686 I python : [INFO ] [Window  ] 
auto add sdl2 input provider 
11-07 15:50:10.470 3741 4686 I python : [INFO ] [Window  ] 
virtual keyboard not allowed, single mode, not docked 
11-07 15:50:10.550 3741 4686 I python : [INFO ] [Loader  ] 
using a thread pool of 2 workers 
11-07 15:50:10.720 3741 4686 I python : [WARNING] [Base  ] 
Unknown <android> provider 
11-07 15:50:10.720 3741 4686 I python : [INFO ] [Base  ] Start application main loop 
11-07 15:50:10.740 3741 4686 I python : [ERROR ] [Base  ] Failed to import "android" module. Could not remove android presplash. 
11-07 15:50:12.130 3741 4943 I python : [ERROR ] [Loader  ] Failed to load image <http://kivy.org/logos/kivy-logo-black-64.png> 
11-07 15:50:12.130 3741 4943 I python : Traceback (most recent call last): 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/site-packages/kivy/loader.py", line 317, in _load_urllib 
11-07 15:50:12.130 3741 4943 I python :  fd = urllib_request.urlopen(filename) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 162, in urlopen 
11-07 15:50:12.130 3741 4943 I python :  return opener.open(url, data, timeout) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 471, in open 
11-07 15:50:12.130 3741 4943 I python :  response = meth(req, response) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 581, in http_response 
11-07 15:50:12.130 3741 4943 I python :  'http', request, response, code, msg, hdrs) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 503, in error 
11-07 15:50:12.130 3741 4943 I python :  result = self._call_chain(*args) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 443, in _call_chain 
11-07 15:50:12.130 3741 4943 I python :  result = func(*args) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 686, in http_error_302 
11-07 15:50:12.130 3741 4943 I python :  return self.parent.open(new, timeout=req.timeout) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 465, in open 
11-07 15:50:12.130 3741 4943 I python :  response = self._open(req, data) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 488, in _open 
11-07 15:50:12.130 3741 4943 I python :  'unknown_open', req) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 443, in _call_chain 
11-07 15:50:12.130 3741 4943 I python :  result = func(*args) 
11-07 15:50:12.130 3741 4943 I python : File "/data/user/0/org.lgt.lgt/files/app/crystax_python/stdlib.zip/urllib/request.py", line 1310, in unknown_open 
11-07 15:50:12.130 3741 4943 I python :  raise URLError('unknown url type: %s' % type) 
11-07 15:50:12.130 3741 4943 I python : urllib.error.URLError: <urlopen error unknown url type: https> 

이 나에게 아주 이상한 오류가 HTTP 및 https 아님

여기 내 buildozer 사양 파일의 link

+0

본인은이 작업을 완료 했으므로 안드로이드 매니페스트에 인터넷 사용 권한을 포함 시켰습니까? –

+0

예 인터넷에 내 권한이 있습니다. 내 buildozer 사양을 게시합니다. – user3751069

+0

도움이 될지 모르겠지만 https URL에 액세스하는 kivy 앱에서 Android를 만듭니다. 여기에 내 요구 조건이있다 : 'requirements = openssl, hostpython2, kivy' –

답변

0

로드하려는 URL (http://kivy.org/logos/kivy-logo-black-64.png)이 https 프로토콜로 URL로 리디렉션됩니다 (브라우저에서보기 만하면됩니다).

Android에서 https으로 URL을로드하려면 OpenSSL 지원을 사용하여 apk를 빌드해야합니다.

파이썬 2에서는 buildozer의 요구 사항에 openssl을 추가하면됩니다.

python3crystax과 호환되는지 확실하지 않습니다.

+0

나는 openssl을 시도했기 때문에 그런 것 같지 않습니다. – user3751069

+0

@ user3751069 가능한 방법은 Python 2를 사용하는 것입니다. 또한 https://github.com/kivy/python-for-android에서 문제를 만들면됩니다. –

+0

감사합니다. – user3751069

관련 문제