pyjnius的Java类
我已经创建了一个Java类,用于pyjnius的python,但我不能使用它,因为pyjnius找不到它,pyjnius文档说我必须将Java类移动到src/org,我已经完成了,但没有成功,有人能告诉我如何在pyjnius中使用Java类吗?请务必告诉buildozer您打包的Java源代码在哪里 例如,如果您有pyjnius的Java类,java,python,kivy,kivymd,pyjnius,Java,Python,Kivy,Kivymd,Pyjnius,我已经创建了一个Java类,用于pyjnius的python,但我不能使用它,因为pyjnius找不到它,pyjnius文档说我必须将Java类移动到src/org,我已经完成了,但没有成功,有人能告诉我如何在pyjnius中使用Java类吗?请务必告诉buildozer您打包的Java源代码在哪里 例如,如果您有java/org/test/TestClass.java,您可以这样做 android.add_src = java/ 确保您的java包与您希望从jnius导入的内容相匹配 pac
java/org/test/TestClass.java
,您可以这样做
android.add_src = java/
确保您的java包与您希望从jnius导入的内容相匹配
package-org.test;
来自jnius导入自动类
自动类('org.test.TestClass')
一个完整的例子
app/main.py
演示如何使用jnius加载自定义java代码
"""
从kivy.app导入应用程序
从jnius导入自动类
班级申请(应用程序):
“”“请参阅模块文档
"""
def test_jnius(自身,名称):
“”“查找我们的测试类,实例化并调用其方法
"""
cls=自动类(“org.test.TestClass”)
result=cls(name).get_result()
self.root.ids.result\u box.text=结果
如果名称=“\uuuuu main\uuuuuuuu”:
应用程序().run()
app/application.kv
FloatLayout:
盒子布局:
方向:“垂直”
大小提示:.5,.5
位置提示:{'center':(.5,.5)}
间距:“20dp”
标签:
文本:“请输入您的姓名”
文本输入:
id:ti
多行:False
尺寸提示:无
高度:自身最小高度
按钮:
短信:“打我!”
发布时:app.test\ujnius(ti.text)
尺寸提示:无
高度:“38dp”
标签:
id:结果框
buildozer.spec
[app]
title = Kivy With Java App
package.name = kivyjavaapp
package.domain = org.test
source.dir = app/
source.include_exts = py,png,jpg,kv,atlas
version = 0.1
requirements = python3,kivy
orientation = portrait
fullscreen = 0
android.add_src = java/
android.arch = armeabi-v7a
android.allow_backup = True
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.10.0
ios.codesign.allowed = false
[buildozer]
log_level = 2
warn_on_root = 1
java/org/test/TestClass.java
package-org.test;
导入java.lang.String;
公共类TestClass{
私有字符串\u名称;
公共测试类(字符串名称){
_名称=名称;
}
公共字符串get_result(){
返回“Hello”+_name;
}
}
(可选,如果您想在桌面上测试java代码,请在运行python app/main.py
之前使用ant all
和export CLASSPATH=build/
构建java代码)
build.xml
您可以在这个存储库中找到这个完整的示例非常感谢兄弟,java文件夹是由您创建的,或者是从系统创建的,如果您是在保存它的地方创建的,那么它就是我在项目文件夹中创建的一个目录(我运行buildozer的地方)。我给出的所有路径都是相对于项目目录的。哦,我明白了,也就是说,我可以在桌面上创建我的项目文件夹,不会有问题吗?我不确定我是否理解这个问题,但你可以在任何地方创建你的项目文件夹,并以你认为合适的方式组织python/java代码,只要你告诉buildozer在哪里可以找到你想要包含的java代码,并且你的java包信息与pyjnius所期望的是一致的。也许你可以看看我在github上链接的完整项目,它们都是相同的文件,但是更容易理解的是看到所有正确组织的文件。