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

Kivy应用在Android真机启动崩溃,报_JavaClass__cls_storage属性错误

Kivy APK在Android 11/13真机启动崩溃,BlueStacks正常,报AttributeError: 'Class' object has no attribute '_JavaClass__cls_storage'

问题概述

  • 开发的简易Kivy应用生成APK后,在BlueStacks模拟器可正常运行
  • 在Android 11和13真机上启动即崩溃
  • Logcat调试时持续输出错误:

    I python: AttributeError: 'Class' object has no attribute '_JavaClass__cls_storage'

  • 当前使用Cython 0.29.36,怀疑版本兼容性问题,调整Cython版本及依赖配置后未解决

应用代码示例

# main.py
from kivy.app import App
from kivy.uix.label import Label

class TestKivyApp(App):
    def build(self):
        return Label(text="Hello Kivy")

if __name__ == "__main__":
    TestKivyApp().run()

Buildozer配置文件(buildozer.spec)

[app]
title = TestKivyApp
package.name = testkivy
package.domain = org.test
source.dir = .
source.include_exts = py,png,jpg,kv,atlas
version = 0.1

requirements = python3,kivy

orientation = portrait
fullscreen = 0
android.api = 33
android.apptheme = @android:style/Theme.Holo.Light
android.sdk = 24
android.ndk = 25b
android.ndk_api = 21
android.arch = armeabi-v7a
android.buildtools = 30.0.3
android.use_aapt2 = True
android.permissions = INTERNET

已尝试的解决方案

  • 调整Cython版本(测试过0.29.30、0.29.35、3.0.0+)
  • 修改buildozer.spec中的android.api、android.ndk版本
  • 清理buildozer缓存后重新构建

排查与解决建议

1. 锁定兼容的Cython版本

该报错多由Cython与python-for-android的兼容性冲突导致,建议指定Cython 0.29.32(这是python-for-android构建Kivy应用的稳定兼容版本),修改buildozer.spec的requirements:

requirements = python3,kivy,cython==0.29.32

2. 确保python-for-android版本兼容

指定python-for-android的稳定分支,避免使用开发版带来的兼容性问题:

# 在[app]区块添加
p4a.branch = stable

3. 排查Java类隐式引用问题

_JavaClass__cls_storage是python-for-android中Java类绑定的内部属性,若代码中存在直接/间接调用Android API的逻辑(比如第三方Kivy扩展、自定义Android交互代码),需确保相关依赖正确引入,且没有未初始化的Java类调用。

4. 调整Android构建参数

  • 匹配目标系统的android.ndk_api:Android 11对应30,Android 13对应33,修改配置:
    android.ndk_api = 33
    
  • 构建调试版APK获取详细日志:
    buildozer android debug deploy run logcat
    
    查看Logcat中崩溃前的上下文信息,定位触发错误的具体类。

5. 彻底清理构建缓存

清理旧的构建文件后重新编译,避免缓存导致的依赖冲突:

buildozer android clean
buildozer android debug

内容的提问来源于stack exchange,提问作者Samet YANIK

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:19:50