2016-05-31 198 views
8

Ardoid应用程序意外停止。Cordova Ionic - 应用程序意外停止

控制器文件中的链接是:我更新了我的OSX到埃尔卡皮坦后https://www.dropbox.com/s/d0lc34q3mzlgfkj/controllers.js?dl=0

的问题发生。在更新应用程序之前,将在模拟器中完美启动。现在,即使我构建APK并尝试将其安装在手机上,它也不会安装。

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

enter image description here

我在做什么错?

+0

您的日志未满 - 它只是表明您的应用程序正在主线程中工作。要获得最佳结果(如果您的应用程序未在电话上安装) - 提供'adb bugreport> bugreport.txt'的输出或者如果应用程序意外停止 - 请在logcat中查找致命错误 – Oleksandr

+0

@Oleksandr logcat中没有致命的词。这是bugreport的链接https://www.dropbox.com/s/jkw9khou9ldnz2v/bugreport.txt?dl=0 –

+0

您使用的是什么版本的Ionic,AngularJS和Cordova?我们是否也可以看到一些HTML结构? – thepio

回答

2

好的,所以我发现很多东西可能会给你造成这个问题。

首先请考虑使用$stateProvider来声明你的状态并为每个状态设置控制器,这样它们不会在同一时间和运行应用程序时全部加载(不确定你是否已经将所有代码设置为一个文件向我们展示你有什么)。但是你知道在你的角度配置设置:使用$stateProvider

例子:

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

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

  • 缺少了很多的范围变量和函数分号(这会导致JavaScript来不知道下一步去哪里等)
  • 使用坏的JavaScript的运营商如resp.data.errors.email != undefined这应该是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() 

我会想象你能做到这一点其他方式。

另请检查您的资源文件大小。例如,如果您使用的是背景图片,图标或类似图片,请检查它们是不是太大。

这些是在查看代码时想到的第一个想法。请先尝试这些(至少纠正代码中的错误),并让我知道它是否有助于解决您的问题。