You need to enable JavaScript to run this app. 使用Chaquopy从Java向Python传值时报null错误,如何正确打印传入的Halo参数?
优惠活动
大模型
产品
解决方案
定价
更多

使用Chaquopy从Java向Python传值时报null错误,如何正确打印传入的Halo参数?

报错原因

你现在遇到的空值报错和Java侧的传值代码没有关系,问题完全出在Python代码的逻辑上:

  • 写在Python文件最外层的print(a()),会在Chaquopy加载Python模块的瞬间直接执行。这时候Java侧还没走到调用a函数传"Halo"的步骤,你直接无参调用需要必填words参数的a函数,自然会报参数缺失的空值错误。
  • 你把“本地测试函数”的代码和“跨语言调用的接收逻辑”混在了一起:Java通过callAttr触发a函数时,才会把"Halo"作为参数传进函数,外层的自动执行逻辑根本碰不到Java传来的值。
正确的Python端实现

直接删掉最外层的无参调用print(a()),把接收、打印传值的逻辑全部放到a函数内部就行:

def a(words):
    # 这里的words就是Java传过来的"Halo",可直接做后续处理
    print("收到Java传入的内容:", words)
    # 处理后的结果可以直接return回Java侧
    return words
传值验证

Python端改完之后,原有的Java代码不需要做任何调整:

  • 当Java执行pyf.callAttr("a", "Halo")时,会自动触发Python函数内部的打印逻辑,正确输出收到的"Halo"内容
  • 也可以在Java侧打印Python函数的返回值做双向校验:
Log.d("ChaquopyTest", "Python返回的内容:" + obj.toString());

内容的提问来源于stack exchange,提问作者Boon Jin Sheng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 11:54:03