我的其他应用程序在Kivy发射器上运行良好,但这个应用程序在加载屏幕上崩溃(有时我甚至看不到崩溃前的文本加载)。因为崩溃发生在加载过程中,Kivy Launcher不会在MyApp/.kivy/logs中创建日志。所以我没有任何日志。
我的手机是带有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发布于 2017-04-27 10:56:53
我有一个也使用RecyclerView的应用程序,我在Android上运行它没有问题(通过构建一个包,而不是复制文件夹,我使用Kivy 1.9.2dev0)
为了了解导致崩溃的真正原因,您需要在应用程序运行时读取日志。
adb devices列出的adb -d install -r abc.apk安装应用程序msg for filter是您的包名org.test.myapp之类的adb logcat | grep “msg for filter”adb logcat | FINDSTR “msg for filter"
https://stackoverflow.com/questions/43633955
复制相似问题