Buildozer打包含deep-translator的Python代码为APK时崩溃问题求助
Android下Deep-Translator库启动崩溃问题排查
我正在开发一款Android应用,采用Python 3.11结合deep-translator库编写代码,通过Buildozer工具将其打包为APK后,在搭载Android 13系统的三星Galaxy A71真机上测试时,应用启动即崩溃。移除代码中的from deep_translator import GoogleTranslator语句后,应用可正常运行。
复现代码
main.py
from kivy.core.window import Window from kivy.app import App from deep_translator import GoogleTranslator kivy.require('2.3.0') class MyApp(App): def build(self): pass if __name__ == '__main__': MyApp().run()
buildozer.spec
title = Excel File Translator package.name = excelfiletranslator package.domain = com.astrobalyka.excelfiletranslator source.dir = . source.include_exts = py,png,jpg,kv,atlas version = 0.1 requirements = python3,kivy==2.3.0,deep-translator orientation = portrait osx.python_version = 3 osx.kivy_version = 2.3.0 fullscreen = 0 android.permissions = android.permission.INTERNET,android.permission.ACCESS_NETWORK_STATE
咨询问题
- 该deep-translator库是否可在此场景下正常使用?
- 是否必须更换其他翻译库?
- deep-translator库无法运行的原因是什么?
问题解答
deep-translator库在该场景下的可用性
deep-translator并非完全不能在Android+Buildozer环境中使用,但当前你的配置下无法直接正常运行,需要解决依赖适配或初始化逻辑的问题才能正常工作。是否必须更换翻译库
不需要必须更换。如果能定位并修复deep-translator的适配问题,依然可以继续使用;如果短期内无法解决,选择更适配Kivy/Buildozer生态的方案(比如直接用requests调用Google翻译公开API,或者使用经过移动端验证的翻译库)会更高效。崩溃原因分析
- 依赖兼容问题:deep-translator依赖的部分Python库(如
requests的底层依赖、加密相关库)在Buildozer打包时未被正确引入,或者这些库在Android的Python运行环境中存在兼容性问题,导致导入时出错。 - 环境初始化差异:Android的Python运行环境和桌面Python有差异,deep-translator导入时可能触发了某些桌面环境下正常但Android环境下无法执行的逻辑(比如加载系统证书、初始化网络配置),引发未捕获异常。
- 隐式初始化触发崩溃:导入
GoogleTranslator时,库可能会执行隐式的初始化操作(比如预加载翻译服务配置、尝试建立网络连接),而此时Android应用的网络权限或系统状态还未就绪,直接导致启动崩溃。
内容的提问来源于stack exchange,提问作者KBill
相关产品推荐
相关产品推荐

