Kivy:对于添加了 add_jars 的 .jar 文件,我应该使用什么包名?
Kivy: what package name should I use for .jar files added with add_jars?
1) 在我的 kivy 项目中,我创建了 \platforms\android\test.java
,内容如下:
class Test {
public int test() {
return 300;
}
}
并将其编译为 .jar
文件(在同一目录中)。
2) 在 buildozer.spec
中我添加了行:
android.add_jars = %(source.dir)s/platforms/android/*.jar
3) 在项目中 main.py
我正在尝试使用它:
import logging
from kivy.utils import platform
if platform == "android":
from jnius import autoclass, cast
Test = autoclass('test.Test')
logging.info(Test().test())
4) apk 构建正常,但出现错误:
jnius.jnius.JavaException: Class not found 'test/Test'
我假设我使用的包名称有问题 autoclass('test.Test')
。
我应该使用什么名称才能正常工作?
而不是添加 .jar
文件,添加 p4a 将处理以用于 Android.
的 java
源文件更容易
1) 我们有文件
/java_folder/some/test.java
内容如下:
package some;
class Test {
public int test() {
return 300;
}
}
2) 在buildozer.spec
中我们添加:
android.add_src = %(source.dir)s/java_folder/
3) 在项目中:
autoclass('some.Test')
工作正常。
我对你的解决方案进行了一些编辑:
- /java_folder/some/test.java => /java_folder/some/Test.java
- class 测试 { => public class 测试 {
之后一切正常。
1) 在我的 kivy 项目中,我创建了 \platforms\android\test.java
,内容如下:
class Test {
public int test() {
return 300;
}
}
并将其编译为 .jar
文件(在同一目录中)。
2) 在 buildozer.spec
中我添加了行:
android.add_jars = %(source.dir)s/platforms/android/*.jar
3) 在项目中 main.py
我正在尝试使用它:
import logging
from kivy.utils import platform
if platform == "android":
from jnius import autoclass, cast
Test = autoclass('test.Test')
logging.info(Test().test())
4) apk 构建正常,但出现错误:
jnius.jnius.JavaException: Class not found 'test/Test'
我假设我使用的包名称有问题 autoclass('test.Test')
。
我应该使用什么名称才能正常工作?
而不是添加 .jar
文件,添加 p4a 将处理以用于 Android.
java
源文件更容易
1) 我们有文件
/java_folder/some/test.java
内容如下:
package some;
class Test {
public int test() {
return 300;
}
}
2) 在buildozer.spec
中我们添加:
android.add_src = %(source.dir)s/java_folder/
3) 在项目中:
autoclass('some.Test')
工作正常。
我对你的解决方案进行了一些编辑:
- /java_folder/some/test.java => /java_folder/some/Test.java
- class 测试 { => public class 测试 {
之后一切正常。