首页 > 解决方案 > kivy run_on_ui_thread 崩溃

问题描述

应用程序编译没有问题,但是当应用程序执行时它关闭

版本:

kivi - 1.10.0 cython:0.28.6 python:3.7.1

主文件


from kivy.app import App

from kivy.uix.widget import Widget
from kivy.clock import Clock
from jnius import autoclass
from android.runnable import run_on_ui_thread


WebView = autoclass('android.webkit.WebView')
WebViewClient = autoclass('android.webkit.WebViewClient')
activity = autoclass('org.kivy.android.PythonActivity').mActivity


class Wv(Widget):
    def __init__(self, **kwargs):
        super(Wv, self).__init__(**kwargs)
        Clock.schedule_once(self.create_webview, 0)

    @run_on_ui_thread
    def create_webview(self, *args):
        pass

class ServiceApp(App):
    def build(self):
        return Wv()


if __name__ == '__main__':
    ServiceApp().run()

这是错误:

Attribute error: 'Wv' object has no attribute 'f2'

标签: pythonkivypyjnius

解决方案


把它create_webview从课堂上拿出来,它会正常工作的。由于您在类方法上使用装饰器,因此它f2在类本身中进行搜索。


推荐阅读