kivy android AttributeError: 'NoneType' object has no attribute 'play'

问题描述 投票:0回答:3
import kivy
from kivy.app import App
from kivy.uix.button import Label
from kivy.core.audio import SoundLoader

class HelloApp(App):
    def build(self):
        self.sound = SoundLoader.load('back.mp3') # open the background music
        self.sound.play() # play the sound
        return Label(text='>>>>>')
if __name__=="__main__":
    HelloApp().run()

这是我的代码,它在 Linux 上运行良好 但是当我尝试通过 buildozer 制作 apk 时 应用程序在启动时崩溃 并且 logcat 命令给出了这个

[警告] [音频] 找不到 的装载机 :追溯(最近一次通话): :文件“/home/moh/audio2/.buildozer/android/app/main.py”,第 15 行,在 :文件“/home/moh/audio2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/kivy/app.py”,第 829 行,在运行中 构建中的文件“/home/moh/audio2/.buildozer/android/app/main.py”,第 9 行 AttributeError: 'NoneType' 对象没有属性 'play' Python for android 结束了。

android python-3.x kivy buildozer
3个回答
1
投票

我找到了解决方案 问题出在音频文件扩展名中,当我将 mp3 文件转换为 wav 扩展名时,mp3 文件由于某种原因无法正常工作 wav 关键字也必须在 buildozer init 中


0
投票

NoneType 表示您的函数调用失败或返回了意外结果。

在你的情况下,

self.sound
期望加载 mp3 文件,当它被
self.sound.play()
调用时,文件要么没有被获取,要么返回了一个意外的结果


0
投票

每当您使用新的类型文件时,只是一个提示。确保你在

中提到它

buildozer.spec

如下所示,我添加了 .json、.mp3 :

# (list) Source files to include (let empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas,mp3,json
© www.soinside.com 2019 - 2024. All rights reserved.