蟒蛇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 不存在