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')

工作正常。

我对你的解决方案进行了一些编辑:

  1. /java_folder/some/test.java => /java_folder/some/Test.java
  2. class 测试 { => public class 测试 {

之后一切正常。