【问题标题】:Meteor apk release build not workingMeteor apk 发布版本不起作用
【发布时间】:2016-09-07 10:53:47
【问题描述】:

我正在使用 Meteor 和 ionic 开发移动应用程序。

当我为 android 构建 apk 时,生成的 apk (release-unsigned.apk) 在我的设备上不起作用。 它确实显示了启动画面,然后它只显示一个空白的白色屏幕,仅此而已。 我在 bluestacks 中运行它并使用远程调试来找出问题所在,控制台中出现了这个错误:

    Uncaught Error: [$injector:modulerr] Failed to instantiate module SoldatyApp due to:
Error: [$injector:unpr] Unknown provider: e
http://errors.angularjs.org/1.4.8/$injector/unpr?p0=e
    at http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:484
    at http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:20192
    at r (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:19362)
    at Object.i [as invoke] (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:19699)
    at r (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:18750)
    at http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:18874
    at o (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:910)
    at p (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:18651)
    at tt (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:20341)
    at s (http://localhost:12312/fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113:7674)
http://errors.angularjs.org/1.4.8/$injector/modulerr?p0=SoldatyApp&p1=Error…e9a0234fdb385aba26e0105b653b78.js%3Fmeteor_js_resource%3Dtrue%3A113%3A7674) fcfcd288ece9a0234fdb385aba26e0105b653b78.js?meteor_js_resource=true:113

我还应该提到,debug.apk 工作得很好。

编辑:

我解压了 debug 和 release apk:不同之处在于 release apk 只有两个 js 文件 inn index.html:一个名为 cordova.js 另一个是触发错误的,而 debug apk 有index.html中项目中使用的所有包,但我仍然不知道如何解决问题:如何使包包含在发布apk中?

【问题讨论】:

  • 您无法使用您的设备向本地主机发出请求
  • 问题是,您在您的 anguar 应用程序中注入了一个未知的提供程序。这通常是由于语法错误或未包含某些文件而发生的。我不知道流星,但我假设在发布版本中他们使用最小化或类似的东西,这破坏了你的应用
  • @OussemaAroua 如果这是问题所在,那么debug.apk 也不会工作
  • @SimonSchüpbach 这就是我的想法:这是缩小的问题。因为应用程序在浏览器上按预期运行,并且处于调试模式,但在发布时失败

标签: android angularjs meteor ionic-framework angular-meteor


【解决方案1】:

在流星论坛上发布问题后,一位 MDG 工作人员 (Urigo) 建议我在 Angular 的 strictDi 中运行应用程序

https://docs.angularjs.org/guide/di

发现是ui-router的onEnter有问题,因为我是这样写的:

onEnter:function($state){

 //code here
}

但其实我应该是这样写的:

onEnter:['$state',function($state){

 //code here
}]

当然,这也应该应用于控制器、服务...... 有关更多详细信息,请阅读以下内容: https://docs.angularjs.org/error/$injector/strictdi

这也可能有帮助: https://gist.github.com/jonnolen/fff606247f24cae8e81d

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多