【问题标题】:Ionic Run Android error - on Ubuntu 16Ionic Run Android 错误 - 在 Ubuntu 16 上
【发布时间】:2016-12-24 07:27:03
【问题描述】:

我正在运行 Ubuntu 16。

这是我的系统信息:

Your system information:

Cordova CLI: 6.3.1
Gulp version:  CLI version 1.2.2
Gulp local:   Local version 3.9.1
Ionic Framework Version: 1.2.4-nightly-1917
Ionic CLI Version: 2.0.0
Ionic App Lib Version: 2.0.0-beta.20
OS: Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS 
Node Version: v4.4.7

当我尝试从我的项目目录执行 sudo ionic run androidsudo ionic build android 时,我得到以下输出:

Running command: /home/simon/flash-trader/hooks/after_prepare/010_add_platform_class.js /home/simon/flash-trader


add to body class: platform-android


Caught exception:
 TypeError: Can't call method on  undefined
    at TypeError (native)
    at module.exports (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/_defined.js:3:28)
    at createHTML (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/_string-html.js:7:19)
    at bold (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/es6.string.bold.js:5:12)
    at cb (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:206:7)
    at done (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:167:19)
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:40:16
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:193:9
    at Console.log (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/transports/console.js:127:3)
    at emit (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:186:17)
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:157:13
    at _each (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:57:9)
    at Object.async.each (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:156:9)
    at Logger.log (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:214:9)
    at target.(anonymous function) [as error] (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/common.js:54:18)
    at Socket.<anonymous> (/usr/lib/node_modules/ionic/lib/utils/cordova.js:83:11)

Mind letting us know? https://github.com/driftyco/ionic-cli/issues


Caught exception:
 TypeError: Can't call method on  undefined
    at TypeError (native)
    at module.exports (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/_defined.js:3:28)
    at createHTML (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/_string-html.js:7:19)
    at bold (/home/simon/flash-trader/node_modules/karma/node_modules/core-js/modules/es6.string.bold.js:5:12)
    at cb (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:206:7)
    at done (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:167:19)
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:40:16
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:193:9
    at Console.log (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/transports/console.js:127:3)
    at emit (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:186:17)
    at /usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:157:13
    at _each (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:57:9)
    at Object.async.each (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/node_modules/async/lib/async.js:156:9)
    at Logger.log (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/logger.js:214:9)
    at target.(anonymous function) [as error] (/usr/lib/node_modules/ionic/node_modules/ionic-app-lib/node_modules/winston/lib/winston/common.js:54:18)
    at Socket.<anonymous> (/usr/lib/node_modules/ionic/lib/utils/cordova.js:83:11) 

是的,两次完全相同的错误。我已经按照 developer.android.com 上的说明在 Ubuntu 上设置了我的手机。调试模式已启用。我所有的环境变量都已设置(我相信。)我通过 Android Studio 安装了 Android SDK。

这个错误非常隐蔽。有人见过吗?

但是,ionic serve 可以完美地构建和运行项目。

Google 搜索出现了一些相关问题,但似乎没有一个与我的确切情况相符。感谢您的帮助。

【问题讨论】:

  • 您应该尝试删除node_modules 并再做一个npm install
  • 我直接从文件系统中删除了/node_modules/platforms,也就是我的项目文件夹中的文件夹。然后我按照以下顺序做了:sudo npm install -g cordovasudo npm install -g ionicsudo npm install。然后我尝试了另一个ionic build android,在 Ionic 为我重新添加了 android 之后,因为我忘了这样做,我得到了同样的错误。
  • 你见过这个 github 打开的问题:github.com/driftyco/ionic-cli/issues/984 吗?它仍处于打开状态,但最后一篇文章给出了使其工作的技巧。另外,我觉得很奇怪你需要使用 sudo 来运行你的所有命令。这是linux的正常使用。你也应该解决这个问题(寻找在没有 sudo 的情况下使用 npm 的方法)。
  • 好主意。我正在研究这两件事。不知道 sudo 很奇怪谢谢

标签: android node.js cordova ubuntu ionic-framework


【解决方案1】:

最后,我做的事情是汇合的。

我必须做一个chown -R $USER ~/[project name],这样我们就不必**sudo** ionic。 sudo 显然对 shell 的其余部分使用了不同的环境变量,因此无法访问 ANDROID_HOME 等。

我还必须更改我的 JAVA_HOME,因为它设置为 [jdk-path]/bin,应该只是 [jdk-path]/

卸载从 Google Play 商店下载的应用程序版本(因为我尝试构建的应用程序已经发布)也可能有所不同。

我还在cordova.js 中将log("foo").green.bold 中的一行更改为liveReload 函数中的log(foo).green

如果你遇到同样的问题,祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    相关资源
    最近更新 更多