标签: buildozer

在 kivy 中使用 opencv, cv2.videocapture with android - python for android

我已经工作了几天,试图在 python-for-android 中使用 cv2.VideoCapture()。我正在使用带有 buildozer 的 kivy 为 android 构建 apk。这是我的代码

from kivy.app import App
from kivy.uix.image import Image
from kivy.clock import Clock
from kivy.graphics.texture import Texture
import cv2


class KivyCamera(Image):
    def __init__(self, capture, fps, **kwargs):
        super(KivyCamera, self).__init__(**kwargs)
        self.capture = capture
        Clock.schedule_interval(self.update, 1.0 / fps)

    def update(self, dt):
        print 'hello'
        ret, frame = self.capture.read()
        print frame
    if ret:
        # convert it to texture
        buf1 = cv2.flip(frame, 0)
        buf = buf1.tostring()
        image_texture = Texture.create(
            size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
        image_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
        # …
Run Code Online (Sandbox Code Playgroud)

python android opencv kivy buildozer

6
推荐指数
0
解决办法
1773
查看次数

kivymd 应用程序在 Android 手机上崩溃 ModuleNotFoundError:没有名为“PIL”的模块

我的 Kivy 应用程序在 Android 手机上启动时崩溃。buildozer logcat 显示以下错误:

02-21 17:09:58.777 14941 14979 I python  :  ModuleNotFoundError: No module named 'PIL'
02-21 17:09:58.777 14941 14979 I python  : Python for android ended.
Run Code Online (Sandbox Code Playgroud)

这是我的 buildozer.spec 要求:

requirements = python3,kivy==2.0.0,git+https://github.com/HeaTTheatR/KivyMD.git,sdl2_ttf==2.0.15,python-dateutil,requests,urllib3,chardet,idna,plyer,android,jnius,oscpy
Run Code Online (Sandbox Code Playgroud)

据我了解,只有 KivyMD 依赖于 PIL。该应用程序在我的 Mac 上完美运行,之前在 Android 手机上也运行良好。错误才刚刚开始发生。所以,我真的很困惑,非常感谢任何帮助。提前致谢!

python android kivy buildozer kivymd

6
推荐指数
1
解决办法
2429
查看次数

使用 Kivy 创建 apk 显示一些错误

当我发出命令后:

buildozer android 调试 部署 运行

我收到以下错误。它显示语法错误?

# Install distribute
# Run 'curl http://python-distribute.org/distribute_setup.py | venv/bin/python'
# Cwd /root/Bt/.buildozer
% Total     % Received  % Xferd   Average  Speed    Time    Time     Time  Current 
Dload Upload  Total Spent    Left Speed
100  1395  100  1395    0     0    276      0  0:00:05  0:00:05 --:--:--   276
File "<stdin>", line 1
<HTML><HEAD>
^
SyntaxError: invalid syntax
# Command failed: curl http://python-distribute.org/distribute_setup.py | venv/bin
/python
Run Code Online (Sandbox Code Playgroud)

android kivy pyjnius buildozer

5
推荐指数
1
解决办法
881
查看次数

Kivy Apk build with buildozer错误:#找不到Java编译器(javac),请安装

我正在尝试建立我的kivy项目的apk。我使用PyCharm在python 2.7中安装了buildozer,然后构建了.spec,但是当我尝试创建apk时,得到了以下结果:我安装了jdk7和8

  1. 使用方法: buildozer Android debug

    #Check configuration tokens
    # Ensure build layout
    # Check configuration tokens
    # Preparing build
    # Check requirements for android
    # Java compiler (javac) not found, please install it.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用方法:  buildozer -v Android debug

    # Check configuration tokens
    # Ensure build layout
    # Check configuration tokens
    # Read available permissions from api-versions.xml
    # Preparing build
    # Check requirements for android
    # Run 'dpkg --version'
    # Cwd None
    /bin/sh: dpkg: comando non trovato
    # …
    Run Code Online (Sandbox Code Playgroud)

python android pycharm kivy buildozer

5
推荐指数
2
解决办法
5112
查看次数

在buildozer上使用android上的python3

我在python 3和kivy中编写了一个小程序.现在我想使用buildozer构建一个.apk并在我的Android手机上测试应用程序.一切正常,我能够在手机上安装应用程序,但应用程序在启动时崩溃.

错误日志显示,apk的python环境是python 2.7而不是3.我的问题是:是否有可能在android上使用python 3环境构建带有buildozer的apk?或者我是否必须在python2中重写应用程序?是否有可能破解迫使buildozer使用python3?

编辑:我按照inclement建议的步骤,并得到以下错误:

 Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
  "__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
  exec code in run_globals
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 747, in <module>
  main()
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 744, in main
  ToolchainCL()
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 323, in __init__
  getattr(self, args.command)(unknown)
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 105, in wrapper_func
  build_dist_from_args(ctx, dist, dist_args)
File "/home/micha/python/ZugGit/ZugAppFahrt/.buildozer/android/platform/python-for-android-master/pythonforandroid/toolchain.py", line 142, in build_dist_from_args
  build_recipes(build_order, python_modules, ctx)
File "pythonforandroid/build.py", line 560, in build_recipes
  recipe.build_arch(arch)
File …
Run Code Online (Sandbox Code Playgroud)

android python-3.x kivy buildozer

5
推荐指数
1
解决办法
7109
查看次数

在Android上使用带有kivy和python-for-android的OpenCV库播放视频

尝试使用OpenCV库与kivy和python-for-android 播放视频

这是我的尝试:

import os

import cv2
from kivy.app import App
from kivy.clock import Clock
from kivy.graphics.texture import Texture
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.image import Image


class KivyCamera(Image):
    def __init__(self, capture=None, fps=0, **kwargs):
        super(KivyCamera, self).__init__(**kwargs)
        # self.capture = cv2.VideoCapture("/sdcard2/python-apk/2.mp4")
        print "file path exist :" + str(os.path.exists("/sdcard2/python-apk/1.mkv"))
        self.capture = cv2.VideoCapture("/sdcard2/python-apk/1.mkv")
        Clock.schedule_interval(self.update, 1.0 / fps)

    def update(self, dt):
        ret, frame = self.capture.read()
        print str(os.listdir('/sdcard2/'))
        if ret:
            # convert it to texture
            buf1 = …
Run Code Online (Sandbox Code Playgroud)

python android python-2.7 kivy buildozer

5
推荐指数
0
解决办法
2456
查看次数

Kivy Buildozer:.so lib 文件缺少调试符号

.so lib 文件缺少调试符号

所以我尝试让我的 bin/debug.apk 在 Buildozer VM 中工作,但是加载 adb 并通过 USB 连接我的 Android 设备时出现问题,所以我将我的 bin/debug.apk 导出到我的桌面以在 Android 中调试它工作室。但是,在它的第一步中,它会抛出一个错误,要求我用具有调试符号的相同库替换 .so 库。

.so lib 文件缺少调试符号

在 buildozer android 调试阶段,这些是否隐藏在 Buildozer VM 中的任何位置?

有没有办法获取带有符号的库,或者解决在 Android Studio 或 Buildozer VM 上没有它们的方法?

debugging android kivy android-studio buildozer

5
推荐指数
2
解决办法
9072
查看次数

当我尝试通过Buildozer初始化android Visualizer时出现密码错误

我在Python上已有一些代码,并希望使用Kivy和Buildozer将其移植到android。但是,我对本地android类“ Visualizer”有依赖性。我的应用程序正确启动,但是当我在应用程序中单击“运行”按钮时,当我在Java中使用以下代码时出现此错误

new Visualizer(0);
Run Code Online (Sandbox Code Playgroud)

要么

Visualizer = autoclass('[visualizer.class.....]')
v = Visualizer(0)
Run Code Online (Sandbox Code Playgroud)

在python中

我授予了所有必需的运行时权限,例如RECORD_AUDIO,MODIFY_AUDIO和INTERNET

ERROR:
06-18 11:25:46.852 24619 24619 D VisualDj: Called set_on_data_capture_listener
06-18 11:25:46.892 24619 24619 D VisualDj: setPlayer1
06-18 11:25:46.968 24622 24622 I crash_dump32: performing dump of process 24619 (target tid = 24619)
06-18 11:25:46.969 24622 24622 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-18 11:25:46.969 24622 24622 F DEBUG   : Build fingerprint: 'HONOR/PRA-TL10/HWPRA-H:8.0.0/HONORPRA-TL10/373(C10):user/release-keys'
06-18 11:25:46.969 24622 …
Run Code Online (Sandbox Code Playgroud)

python java android pyjnius buildozer

5
推荐指数
0
解决办法
544
查看次数

即使 Kivy 声音在笔记本电脑上播放正常,也无法在 android 设备上播放

我正在尝试使用 Kivy 播放声音。声音播放完美,在我的笔记本电脑上一切正常,但是当我在我的 Android 设备上加载 APK 时,声音没有播放。

我在我的 android 设备上手动允许了“存储权限”,在我的 buildozer.spec 文件中,我已经包含了写入和读取外部存储的权限。我创建了一个测试文件来尝试调试以查看出了什么问题,但无济于事。我将在下面分享此测试文件的详细信息。

首先,这是 .py 文件:

import kivy

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color
from kivy.core.audio import SoundLoader

__version__ = '0.1'

class SoundTestApp(App):
    def build(self):
        self.load_kv('soundtest.kv')
        return SoundTestWidget()

class SoundTestWidget(Widget):
    def playsound(self):
        sound = SoundLoader.load('testmusic.wav')
        sound.play()

SoundTestApp().run()

Run Code Online (Sandbox Code Playgroud)

接下来,这里是 .kv 文件:

<SoundTestWidget>:
    soundbutton: sound_button

    Button:
        id: sound_button
        size: (root.width,root.height)
        background_color: (1, 0, 0, 1)
        text: "press to play music"
        pos: self.pos
        on_release:
            self.text = "music is …
Run Code Online (Sandbox Code Playgroud)

python logcat kivy buildozer kivy-language

5
推荐指数
1
解决办法
770
查看次数

如何通过 Docker 使用 Buildozer 构建 .aab?

我刚刚看到Python for Android (p4a)刚刚引入了对 AAB 文件的支持。考虑到从 2021 年 8 月开始,新应用程序需要通过 Google Play 上的 Android App Bundle 发布,这对于任何处理 Android 应用程序的 Python 开发人员来说都是至关重要的补充。

由于我目前通过 Docker 使用 Buildozer,我想知道使它生成 .aab 而不是(或沿着)传统 .apk 的步骤有哪些

为了清楚起见,我使用以下方法从容器内部运行 Buildozer(使用适用于 Windows 的 Docker)来生成 .apk 文件:

docker run --interactive --tty --rm --volume "<full_path_to_project_dir>":/home/user/hostcwd kivy/buildozer -v android debug 
Run Code Online (Sandbox Code Playgroud)

我已经看到有一个临时解决方法,但它涉及使用 Android Studio,我不使用并且希望避免使用。而且,它指的是虚拟机用户,但我不确定这是否也适用于 Docker 用户。

python android buildozer android-app-bundle p4a

5
推荐指数
1
解决办法
1895
查看次数