我的其他應用程序在Kivy Launcher上正常工作,但是這個在加載屏幕上崩潰(有時我甚至沒有看到在崩潰前加載的文本)。因爲在加載過程中發生崩潰,所以Kivy啓動器不會在MyApp/.kivy/logs
中創建日誌。所以我沒有任何日誌。Kivy App在Android KitKat上崩潰(Kivy Launcher)
我的手機是帶有Kitkat的三星S3。
我在手機上的應用程序文件夾中複製了文件夾Python36\Lib\site-packages\kivy\uix\recycleview
(也許是罪魁禍首),但我的應用程序仍然崩潰。 這是應用程序(非常感謝El3phanten):
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty
from kivy.uix.recycleview.views import RecycleDataViewBehavior
items = [
{"text": "white", "selected": 'normal', "input_data": ["some","random","data"]},
{"text": "lightblue","selected": 'normal', "input_data": [1,6,3]}
]
class MyViewClass(RecycleDataViewBehavior, BoxLayout):
text = StringProperty("")
index = None
def set_state(self,state,app):
app.root.ids.rv.data[self.index]['selected'] = state
def refresh_view_attrs(self, rv, index, data):
self.index = index
return super(MyViewClass, self).refresh_view_attrs(rv, index, data)
class MyRecycleView(RecycleView):
data = items
def print_data(self,data):
print([item['input_data'] for item in data if item['selected'] == 'down'])
KV = '''
<MyViewClass>:
orientation: 'horizontal'
CheckBox:
on_state: root.set_state(self.state,app)
Label:
text: root.text
BoxLayout:
orientation: 'vertical'
MyRecycleView:
id: rv
viewclass: 'MyViewClass'
RecycleBoxLayout:
orientation: 'vertical'
default_size: None, dp(56)
default_size_hint: 1, None
size_hint_y: None
height: self.minimum_height
Button:
size_hint_y: 0.1
text: "Print data"
on_release: rv.print_data(rv.data)
'''
class Test(App):
def build(self):
root = Builder.load_string(KV)
return root
Test().run()
編輯: 現在我得到的日誌。我嘗試了@KeyWeeUsr解決方案,但仍找不到該模塊。
我的應用程序文件夾現在結構以這種方式:
my_app/:
-main.py
-android.txt
-kivy/
-uix/
-recycleview/
-__init__.py
-datamodel.py
-layout.py
-views.py
這裏是日誌:
[INFO ] Logger: Record log in /storage/emulated/0/kivy/del/.kivy/logs/kivy_17-04-27_2.txt
[INFO ] Kivy: v1.9.1
[INFO ] Python: v2.7.2 (default, Mar 20 2016, 23:30:13)
[GCC 4.8]
[INFO ] Factory: 179 symbols loaded
[WARNING ] stderr: /data/data/org.kivy.pygame/files/lib/python2.7/site-packages/kivy/core/image/img_pygame.py:13: 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 3, in <module>
[WARNING ] stderr: from kivy.uix.recycleview import RecycleView
[WARNING ] stderr: ImportError: No module named recycleview
感謝這個,我必須告訴你,我我對python和Kivy很新穎,大部分我在鏈接上看到的東西都像中文。我會更近一些,並嘗試瞭解如何製作定製的kivy啓動器。我試過你的解決方案(將文件夾kivy/uix/recycleview放入我的應用程序文件夾中,而不是像我這樣直接將recycleview文件夾放入,但該應用程序仍然崩潰,顯示「沒有名爲recycleview的模塊」。 – Enora