Cordova Ionic - App意外停止了

时间:2016-05-31 07:06:59

标签: android cordova ionic-framework

Ardoid应用程序意外停止。

控制器文件的链接是:https://www.dropbox.com/s/d0lc34q3mzlgfkj/controllers.js?dl=0

我将OSX更新为El capitan后出现问题。在更新之前,应用程序将在模拟器中完美启动。现在,即使我构建了APK并尝试将其安装在手机上,也无法安装。

下面是我的日志文件的图片:

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:3)

好的,所以我发现了很多可能导致这个问题的事情。

首先请考虑使用$stateProvider声明您的状态并设置每个状态的控制器,以便他们不会同时加载所有状态并运行应用程序(不确定您是否刚刚设置将所有代码合并到一个文件中以向我们展示您的内容。但是你知道你的角度配置集:

使用$stateProvider

的示例
$stateProvider
  .state('app.page1', {
    url: '/page1',
    templateUrl: 'templates/page1.html',
    controller: 'Page1Ctrl'
    }
});

其次,代码中存在很多错误/语法错误。我不确定你使用的是什么IDE(编辑器),但请考虑添加一个jshint插件(如果可能的话,还可以通过在线jshint @ http://jshint.com/运行它或类似于你的IDE)。它将指出代码中的错误。您的代码中的一些错误是:

  • 在范围变量和函数中缺少很多分号(这会导致JavaScript不知道下一步去哪里等)
  • 使用resp.data.errors.email != undefined等错误的javascript运算符resp.data.errors.email !== undefined

这也很糟糕:

moment($scope.iosDate.value.toISOString()).hour(7).minute(0).toISOString(),
         moment($scope.iosDate.value.toISOString()).hour(8).minute(0).toISOString(), 
         moment($scope.iosDate.value.toISOString()).hour(9).minute(0).toISOString(),
          moment($scope.iosDate.value.toISOString()).hour(10).minute(0).toISOString(),
           moment($scope.iosDate.value.toISOString()).hour(11).minute(0).toISOString(),
            moment($scope.iosDate.value.toISOString()).hour(12).minute(0).toISOString(),
             moment($scope.iosDate.value.toISOString()).hour(13).minute(0).toISOString(),
              moment($scope.iosDate.value.toISOString()).hour(14).minute(0).toISOString(),
               moment($scope.iosDate.value.toISOString()).hour(15).minute(0).toISOString(), 
               moment($scope.iosDate.value.toISOString()).hour(16).minute(0).toISOString(),
                moment($scope.iosDate.value.toISOString()).hour(17).minute(0).toISOString(),
                 moment($scope.iosDate.value.toISOString()).hour(18).minute(0).toISOString(),
                  moment($scope.iosDate.value.toISOString()).hour(19).minute(0).toISOString(),
                   moment($scope.iosDate.value.toISOString()).hour(20).minute(0).toISOString(),
                    moment($scope.iosDate.value.toISOString()).hour(21).minute(0).toISOString(),
                     moment($scope.iosDate.value.toISOString()).hour(22).minute(0).toISOString()

我想你可以用其他方式做到这一点。

还要检查资源文件的大小。例如,如果您使用背景图像,图标或类似物,请检查它们是否过于庞大。

在查看代码时,这些是我想到的第一个想法。请先尝试这些(至少更正代码中的错误)并告诉我它是否对您的问题有任何帮助。