You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy应用在Android设备启动触发SIGSEGV错误求助

问题分析:Fatal signal 11 (SIGSEGV) 崩溃问题

Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x40 in tid 10919 (SDLThread), pid 10882 (org.test.myapp)

当前logcat最后一行显示上述崩溃,即使回退到之前确认能正常运行的初始版本,在自己的设备上依然报错,但在朋友的Android 10设备上运行正常。怀疑是32位与64位本地库兼容问题,以下是Buildozer配置片段:

requirements = android,python3,kivy,kivymd,certifi,pillow,camera4kivy,gestures4kivy,numpy,keras,opencv-python,requests,urllib3,chardet,idna,beautifulsoup4
# change the major version of python used by the app
osx.python_version = 3

# Kivy version to use
osx.kivy_version = 1.9.1
# (list) Permissions
android.permissions = INTERNET,CAMERA,RECORD_AUDIO,WRITE_EXTERNAL_STORAGE,READ_EXTERNAL_STORAGE

# (list) features (adds uses-feature -tags to manifest)
#android.features = android.hardware.usb.host

# (int) Target Android API, should be as high as possible.
android.api = 31
# (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# In past, was `android.arch` as we weren't supporting builds for multiple archs at the same time.
android.archs = arm64-v8a, armeabi-v7a

p4a.hook = camerax_provider/gradle_options.py

已回退到最基础版本、重置Kivy代码和Buildozer配置,但错误依旧,询问是否是自己手机的问题。


可能的原因与解决方案

  1. 多架构编译导致的库冲突
    你当前配置android.archs = arm64-v8a, armeabi-v7a,同时编译两种架构的包。像opencv-python、numpy这类带本地扩展的库,很可能存在32位与64位版本不兼容的情况,或者你的设备对混合架构的支持有问题。试试只编译单一架构:

    android.archs = arm64-v8a
    

    如果你的设备是旧款32位机型,就改为armeabi-v7a,重新打包测试。

  2. 老旧依赖库不兼容高版本Android
    朋友的设备是Android 10,而你的目标API是31(对应Android 12),推测你的设备系统版本更高。高版本Android对权限、系统API的限制更严格,而你配置的osx.kivy_version=1.9.1是非常老旧的版本,根本不支持Android 12+。
    建议把Kivy版本更新到支持高版本Android的稳定版(比如2.2.1),同时确保kivymd、camera4kivy等依赖也用兼容的新版本。

  3. 构建缓存残留引发冲突
    就算回退了代码,Buildozer/Python-for-Android的本地缓存可能还残留旧的编译产物,导致冲突。执行以下操作清理:

    • 删除项目根目录下的.buildozer文件夹
    • 删除bin目录下的旧APK
    • 重新执行buildozer android debug deploy run
  4. 设备本身的小概率问题
    排除上述因素后,如果还是崩溃,可能是你的设备存在特定硬件或系统bug。可以试试:

    • 重启设备,清除应用缓存和数据后重装
    • 在其他同版本Android的设备上测试,确认是不是你的设备独有问题

总结:大概率不是手机本身的问题,更可能是多架构编译冲突、老旧依赖库不兼容,或者构建缓存残留导致的。优先尝试单一架构编译、更新依赖版本、清理构建缓存这几个方案。

内容的提问来源于stack exchange,提问作者Vanilla Ice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:25:28