Kivy: какое имя пакета я должен использовать для файлов.jar, добавленных с помощью add_jars?
1) В проекте моей Киви я создал \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: класс не найден 'test/Test'
Я предполагаю, что проблема с именем пакета я использовал autoclass('test.Test')
, Какое имя я должен использовать, чтобы заставить вещи работать?
2 ответа
Вместо добавления .jar
файл легче добавить java
исходный файл, который будет обрабатываться p4a для использования на Android.
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
- тест класса { => тест открытого класса {
После этого все будет работать.