【问题标题】:kivy android AttributeError: 'NoneType' object has no attribute 'play'kivy android AttributeError:'NoneType'对象没有属性'play'
【发布时间】:2020-11-28 02:05:13
【问题描述】:
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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      在你的情况下,

      self.sound 期望加载 mp3 文件,当它被 self.sound.play() 调用时,该文件要么未获取,要么返回意外结果

      【讨论】:

      • 如果它在 pc 上工作正常但在 android 上它给出此属性错误,我怎么知道是什么问题
      • @fsu870 如前所述,当参数调用函数失败时会产生错误。也就是说,您的对象的 NoneType,它正在从某个位置加载 .mp3 文件。它不是从那个位置获取的。
      猜你喜欢
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多