You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Buildozer打包Kivy Android应用时pyjnius自定义Java接口异常

问题:Android打包后Python实现Java接口出现类加载器可见性异常

这是一个大型应用的简化版本,核心需求是实现Java回调对象调用Python方法,基于Kivy框架开发,涉及文件包括main.py、Print.java、IPrint.java、Holder.java以及buildozer.spec配置文件。简化版仅实现启动Kivy应用并打印“hi”的功能,但通过Buildozer打包为Android应用后运行报错:

<originating from main.py: self.printer=Print()>
jnius.jnius.JavaException: JVM exception occurred: interface com.example.IPrint is not visible from class loader java.lang.IllegalArgumentException

已排查的关键信息

  • 替换为Java原生实现的Print类时,应用运行正常,确认问题根源在继承PythonJavaClass的自定义Python类上。
  • 故意拼写错误IPrint接口名称时,触发“类未找到”异常,说明IPrint接口的配置可被正常识别。
  • 代码在MacBook本地运行无异常,但Buildozer打包的Android应用出现类加载器可见性错误。
  • 尝试将Java类编译为Jar文件配置到项目中,问题未解决;单独为IPrint生成Jar时提示资源重复,且无法通过pyjnius的autoclass/JavaClass加载该接口,实例化时会触发另一种跨平台异常。

内容的提问来源于stack exchange,提问作者Kieron Harrower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 21:33:14