Android 的 Kivy 应用程序无法加载图像
Kivy App for Android Unable to Load Image
我通过 Buildozer 部署到 Android 的 Kivy 应用程序无法在 Android 上正常启动,因为我添加了 .jpg 和 .wav 文件(用作背景图像和应用程序声音)。它在我的 Window 机器上运行得很好。
adb catlog
给我以下警告:Unable to load image </data/user/0/org.test.galaxy/files/app/assets/images/bg1.jpg>
。但更重要的是,如果我在 android 模拟器中导航到此文件路径,则该文件确实存在。
View all my code in this public repo
执行我的 galaxy.kv
的第 10 行时抛出此错误,该行试图使用 source: root.resource_path('assets/images/bg1.jpg')
设置我的 Rectangle 的背景信息
最初,我只是使用相对路径并将其全部留给 Buildozer 来处理 OS 特定路径(我在某个地方读到这应该有效),但是因为我有这个错误,我已经包含了 resource_path()
(归功于 Whosebug 上的某个人)方法,该方法应该考虑 OS 特定路径。该代码如下所示:
def resource_path(self, relative_path):
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
print('base path:', base_path)
return os.path.join(base_path, relative_path)
我的 buildozer.spec
中的一些相关行(同样,使用上面的 link 查看我的整个 repo):
source.include_exts = py,png,jpg,kv,atlas,wav,ttf
...
requirements = python3,kivy
我是 Kivy 和 Buildozer 的新手,显然我错过了一些关于如何访问静态文件的内容。任何帮助将不胜感激。
可能是你的背景图分辨率太高了。
请使用较小的图片重试。
我通过 Buildozer 部署到 Android 的 Kivy 应用程序无法在 Android 上正常启动,因为我添加了 .jpg 和 .wav 文件(用作背景图像和应用程序声音)。它在我的 Window 机器上运行得很好。
adb catlog
给我以下警告:Unable to load image </data/user/0/org.test.galaxy/files/app/assets/images/bg1.jpg>
。但更重要的是,如果我在 android 模拟器中导航到此文件路径,则该文件确实存在。
View all my code in this public repo
执行我的 galaxy.kv
的第 10 行时抛出此错误,该行试图使用 source: root.resource_path('assets/images/bg1.jpg')
最初,我只是使用相对路径并将其全部留给 Buildozer 来处理 OS 特定路径(我在某个地方读到这应该有效),但是因为我有这个错误,我已经包含了 resource_path()
(归功于 Whosebug 上的某个人)方法,该方法应该考虑 OS 特定路径。该代码如下所示:
def resource_path(self, relative_path):
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
print('base path:', base_path)
return os.path.join(base_path, relative_path)
我的 buildozer.spec
中的一些相关行(同样,使用上面的 link 查看我的整个 repo):
source.include_exts = py,png,jpg,kv,atlas,wav,ttf
...
requirements = python3,kivy
我是 Kivy 和 Buildozer 的新手,显然我错过了一些关于如何访问静态文件的内容。任何帮助将不胜感激。
可能是你的背景图分辨率太高了。 请使用较小的图片重试。