cocos_Wei 2013-12-23 03:44 采纳率: 0%
浏览 1755

调用addArmatureFileInfoAsync在android上出现闪退

最近做个骨骼动画demo调用addArmatureFileInfoAsync在android上出现闪退 在调用异步加载 CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfoAsync("BZ.ExportJson", this, schedule_selector(BattleLayer::enemyLoaded));的时候 android会出现闪退 当我将异步换成同步CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo就没问题了,这个是什么原因呢 ?而且加载进去的骨骼动画 有些不稳定 有部分骨骼会闪动,似乎加载不完全,求各位大神帮帮忙解答下!!!!!
导入android闪退出现以下图!
CSDN移动问答

CSDN移动问答

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 15:58
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能由多种因素引起,包括但不限于:

    1. Android Studio版本:确保你的Android Studio版本是最新稳定的。过时或不兼容的版本可能导致错误。

    2. ARMature库版本:确保你使用的ARMature库与Android SDK保持一致。如果你使用的是旧版的ARMature库,可能会遇到兼容性问题。

    3. JNI(Java Native Interface)调用:如果在调用addArmatureFileInfoAsync方法时遇到了问题,检查是否有JNI调用错误。这通常发生在JNI调用过程中发生了异常或者内存泄漏。

    4. Activity生命周期管理:确保在添加骨架数据文件到骨骼动画之前,Activity处于正确的生命周期状态。例如,它应该在非主线程中运行,并且在所有非主线程任务完成后被销毁。

    5. 性能问题:Android系统对一些特定的IO操作和内存分配非常敏感,可能导致应用崩溃。尝试减少这些操作的数量或者优化它们的执行效率。

    6. 权限问题:确保你的应用请求了必要的权限,并且用户已经授权了应用程序访问这些资源。在某些情况下,缺少权限也可能导致应用崩溃。

    7. 其他错误信息:如果能获取到具体的错误信息,可以帮助定位问题所在。这些信息通常包含关于错误发生的上下文、错误类型等详细信息。

    8. 设备/环境差异:不同的设备和环境可能会有不同的行为。为了排除因平台特异性而导致的问题,请进行跨平台测试。

    解决这个问题的最佳方式是通过逐步调试来逐步缩小问题范围。你可以尝试以下步骤:

    • 检查AndroidManifest.xml中的Activity配置,确认其是否正确设置为非主线程。
    • 分析JNI调用日志,看看是否有任何错误或警告。
    • 尝试使用模拟器或虚拟机运行你的应用,观察问题是否仍然存在。
    • 使用Android Studio的调试功能来逐行分析代码,找到可能导致问题的行。
    • 调整Application类的生命周期处理逻辑,以适应不同场景下的需求。

    希望以上建议对你有所帮助!

    评论

报告相同问题?