为什么我不能导入除jnius之外的pyjnius?

时间:2019-09-15 12:24:47

标签: python python-3.x kivy pyjnius

当我使用python解释器时,可以很好地导入它。但是,如果我编写脚本,则出于某种原因import jnius可以正常工作,但是当我编写from jnius import autoclassfrom jnius import JavaClass时会得到ImportError: Cannot import 'autoclass' from 'jnius'

我什至尝试写作

import jnius
Python Activity = jnius.autoclass('org.kivy.android.PythonActivity')

但是我得到AttributeError: 'jnius' has no attribute 'autoclass'

编辑: 当我们在autoclass主题上时,我写

Python Activity = autoclass('org.kivy.android.PythonActivity')

我知道

jnius.JavaException: Class not found b'org/kivy/android/PythonActivity'

1 个答案:

答案 0 :(得分:2)

在这里

我检查了一下,所有设置都正确。我只是没有意识到在导入jnius之前必须先导入kivy。

如果要测试,代码应类似于以下代码。我只在使用Pydroid3的Android手机上尝试过,但没有在笔记本电脑上尝试过

import kivy
from kivy.app import App
from kivy.uix.label import Label

from jnius import autoclass


PythonActivity = autoclass('org.kivy.android.PythonActivity')

class MyApp(App):
    def build(self):
        return Label(text=str(type(PythonActivity)))


if __name__=="__main__":
    MyApp().run()

它应该显示以下行<class 'jnius.jnius.MetaJavaClass'>