2015-05-01 42 views
3

我想從kivy.org的kivy啓動器中運行此代碼,在我的nexus 5上。 我在kivy文件夾中創建了一個文件夾, android.txt「文件。以下是main.py:無法在kivy啓動器中運行「hello world」python代碼for android

import kivy 
kivy.require('1.9.0') 
from kivy.app import App 
from kivy.uix.label import Label 


class TestApp(App): 
    def build(self): 
      return Label(text='Hello World') 
if __name__ == '__main__': 
    TestApp().run() 

,當我從啓動開始就崩潰instantly.And這是我得到的日誌文件夾中:

[INFO    ] Logger: Record log in /storage/emulated/0/kivy/myshit/.kivy/logs/kivy_15-05-01_6.txt 
[INFO    ] Kivy: v1.9.0 
[INFO    ] Python: v2.7.2 (default, Apr 2 2015, 13:52:41) 
[GCC 4.8] 
[INFO    ] Factory: 173 symbols loaded 
[WARNING   ] stderr: /data/data/org.kivy.pygame/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:1.3: RuntimeWarning: import cdrom: No module named cdrom 
[WARNING   ] stderr: (ImportError: No module named cdrom) 
[INFO    ] Image: Providers: img_tex, img_dds, img_gif, img_pygame, img_pil (img_ffpyplayer ignored) 
[WARNING   ] stderr: Traceback (most recent call last): 
[WARNING   ] stderr: File "main.py", line 9, in <module> 
[WARNING   ] stderr:  return Label(text='Hello World') 
[WARNING   ] stderr: File "/home/tito/code/python-for-android/build/python-install/lib/python2.7/site-packages/kivy/app.py", line 798, in run 
[WARNING   ] stderr: File "main.py", line 7, in build 
[WARNING   ] stderr:  class TestApp(App): 
[WARNING   ] stderr: NameError: global name 'Label' is not defined 

請指導我該怎麼辦錯了嗎? P.S.我不編譯應用程序,我只是想在啓動器中運行它。示例遊戲和展示工作正常。

+1

我很笨,你的代碼在我的電腦上運行良好。 – EvenLisle

回答

1

試試這個:

import kivy 
kivy.require('1.9.0') 
from kivy.app import App 
from kivy.lang import Builder 

kv = ''' 
Label: 
    text: "Hello World" 
''' 

class TestApp(App): 
    def build(self): 
      return Builder.load_string(kv) 
if __name__ == '__main__': 
    TestApp().run() 

老實說,我不知道爲什麼你的代碼將無法運行,但我還沒有看到有人只是直線上升返回kivy小部件(如LabelButton )之前,從構建方法,所以也許這是有關的。從我看到的情況來看,通常構建方法會返回一個類的實例,該類是應用程序的根部件。該類通常看起來要麼繼承自kivy佈局,要麼繼承Widget類本身,並封裝其他所有內容,作爲構件樹的根。

+0

沒有work.WARNING]標準錯誤:... [警告]標準錯誤:1: [警告]標準錯誤:2:標籤: [警告]標準錯誤:>> 3:文本: 「Hello World」 的 [WARNING ] stderr:4: [警告] stderr:... [警告] stderr:無效的縮進,必須是3個空格的倍數.....然後python for android死亡 – ziphead

+1

也許有一些與我的CM12.1每晚..我沒有在其他Android設備上測試它 – ziphead

+0

等一下!我只是試着將你的代碼保存在另一個文本編輯器中,它工作正常!我的舊代碼也可以工作。警告不要使用turbo編輯器,這是凌亂的 – ziphead