Titanium:相机崩溃应用程序

时间:2012-10-25 11:56:36

标签: image crash camera titanium store

我正在使用Titanium sdk的openCamera函数来捕获图像并将其存储到SD卡中。

function captureImage() {
        var capturedImg;  
        Titanium.Media.showCamera({ 
            success : function(event) {                 
                /* Holds the captured image */
                capturedImg = event.media;

                /* Condition to check the selected media */
                if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) {
                        var window1 = Project.AddDocumentSaveView.init(capturedImg, docImgModel);
                        window1.oldWindow = win;
                        Project.UI.Common.CommonViews.addWindowToTabGroup(window1);
                        activityInd.hide();

             }
            },
            cancel : function() {

            },
            error : function(error) {
                /* called when there's an error */
                var a = Titanium.UI.createAlertDialog({
                    titleid : Project.StringConstant.IMP_DOCS_CAMERA
                });

                if (error.code == Titanium.Media.NO_CAMERA) {
                    a.setMessage(Project.StringConstant.IMP_DOCS_ERROR_WITH_CAMERA);
                } else {
                    a.setMessage(Project.StringConstant.UNEXPECTED_ERROR + error.message);
                }

                a.show();
        }
        });
    }

它在iphone甚至三星galaxy s2中运行良好。但在一台设备上,摩托罗拉Milestone设备,应用程序在捕获后接受图片时崩溃。

以下是设备连接时的日志:Log for camera crash

我尝试了很多次但却找不到问题。我认为它有一些记忆问题,但我不确定。

有人可以调查并帮我找出问题所在。

任何帮助/建议都将受到赞赏。

由于

2 个答案:

答案 0 :(得分:0)

此相框中的所有内容都应在相机关闭后完成

if (event.mediaType == Ti.Media.MEDIA_TYPE_PHOTO) {
}

相机占用大量内存,你正在打开新窗户并做一堆其他的东西......不太好。

答案 1 :(得分:0)

这是Titanium上的老化问题(TIMOB-12848

在某些设备上,原生相机应用程序(Titanium使用Intent调用它)会导致Android破坏我们的应用程序。 当它尝试重新启动它时,没有恢复先前的状态,因此不会调用意图回调。

我找到了一个简单的解决方法来最小化这个问题,但是没有解决它。它只是"掩盖"不知何故。

上一个链接中讨论了解决方法,完整的示例代码为here