蟒蛇pyjnius; PythonActivity错误我安装了JDK+Visual C++

Posted

技术标签:

【中文标题】蟒蛇pyjnius; PythonActivity错误我安装了JDK+Visual C++【英文标题】:python pyjnius; PythonActivity error I installed JDK+Visual C++ 【发布时间】:2021-01-14 01:31:12 【问题描述】:

我安装了 JDK 和 Visual Studio。我可以毫无问题地导入其他类,但是在导入 PythonActivity 类时总是出错。

我正在使用 javac 14.0.2 和 C++

我的代码:

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()

和错误:

     PythonActivity = autoclass('org.kivy.android.PythonActivity')
   File "D:\DNDR\Yeni klasör\lib\site-packages\jnius\reflect.py", line 229, in autoclass
     c = find_javaclass(clsname)
   File "jnius\jnius_export_func.pxi", line 26, in jnius.find_javaclass
   File "jnius\jnius_utils.pxi", line 91, in jnius.check_exception
 jnius.JavaException: JVM exception occurred: org/kivy/android/PythonActivity java.lang.NoClassDefFoundError

【问题讨论】:

【参考方案1】:

Activity 是为安​​卓应用创建的,所以在这种情况下,pyjnius 将被用于安卓应用访问类。您只需在 Android 上编码、编译和运行。该活动是android应用程序。 buildozer 或 p4a 创建活动文件。所以尝试使用 p4a 或 buildozer 构建,然后在 Android 模拟器或设备上运行,然后检查日志。

我在我的项目中使用了它。我有我使用 buildozer 构建 apk。该应用程序运行良好。

https://github.com/infinyte7/Mandarin-News-Feed/blob/master/Mandarin%20News%20Feed/main.py#L46

https://github.com/infinyte7/Mandarin-News-Feed/blob/master/Mandarin%20News%20Feed/main.py#L670

Installing pyjnius on Windows

【讨论】:

那么,要查看此代码是否有效,我是否需要将其设为应用程序并在 android 设备上运行? 是的,使用 buildozer 创建应用并在设备上运行。但是 buildozer 只能在 linux 上运行。所以你可以使用虚拟机。

以上是关于蟒蛇pyjnius; PythonActivity错误我安装了JDK+Visual C++的主要内容,如果未能解决你的问题,请参考以下文章

为啥 buildozer 显示 Error: Activity class org.test.myapp/org.renpy.android.PythonActivity 不存在

如何使用 Pyjnius 正确访问 Android java 类

pyjnius不在虚拟环境中工作

Kivy + PyJnius 检查安卓版本

在 Windows 上安装 pyjnius

在 android 上使用 pyjnius 连接到 wifi 网络