Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pyjnius的Java类_Java_Python_Kivy_Kivymd_Pyjnius - Fatal编程技术网

pyjnius的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类,用于pyjnius的python,但我不能使用它,因为pyjnius找不到它,pyjnius文档说我必须将Java类移动到src/org,我已经完成了,但没有成功,有人能告诉我如何在pyjnius中使用Java类吗?

请务必告诉buildozer您打包的Java源代码在哪里

例如,如果您有
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上链接的完整项目,它们都是相同的文件,但是更容易理解的是看到所有正确组织的文件。