web-dev-qa-db-ja.com

Phonegap / Cordova build Android node_modules / q / q.js throw e;

cordova build Androidは次のエラーを表示します

node_modules/q/q.js:126 throw e; (*error details)

この質問は以前に尋ねられましたが、PATHとAndroid_HOMEに関する典型的な答えは私にとってはうまくいきませんでした。

SO送信の問題を回避するために、これをコードスニペットに入れました

export HOME="/Users/rover"
export Android_SDK="$HOME/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk"
export Android_HOME="$Android_SDK/tools"
export Android_PLATFORM_TOOLS="$Android_SDK/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$Android_SDK/build-tools:$PATH"
export ANT_HOME="/usr/local/bin/ant"
#export PATH="$PATH:$ANT_HOME/bin"

私の環境変数:

$セット| grep "Android\| PATH"

Android_HOME =/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools Android_PLATFORM_TOOLS =/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/platform-tools Android_SDK =/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk PATH =/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools:/ Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/platform-tools:/ Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64 -20140702/sdk/build-tools:/ usr/local/bin:/ usr/bin:/ bin:/ usr/sbin:/ sbin:/ opt/X11/bin

$ which ant
/usr/local/bin/ant
$ ls /usr/local/bin/ant
/usr/local/bin/ant

$ cordova --version
4.0.0

$ ant -v
Apache Ant(TM) version 1.9.4

Mac OSX 10.10(Yosemite)を使用していますが、Java 8.に問題がある可能性があります。

$ Java -version Java version "1.8.0_05" Java(TM)SE Runtime Environment(build 1.8.0_05-b13)Java HotSpot(TM)64-Bit Server VM(ビルド25.5-b02、混合モード)

$ ant --execdebug
exec "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/bin/Java" -classpath "/usr/local/Cellar/ant/1.9.4/libexec/lib/ant-launcher.jar" -Dant.home="/usr/local/Cellar/ant/1.9.4/libexec" -Dant.library.dir="/usr/local/Cellar/ant/1.9.4/libexec/lib" org.Apache.tools.ant.launch.Launcher -cp ""

(*error details)

BUILD FAILED
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:653: The following error occurred while executing this line:
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:698: null returned: 1

Total time: 1 second

/Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: ant with args: debug,-f,/Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:756:16)
    at Process.ChildProcess._handle.onexit (child_process.js:823:5)

これを修正するアイデアはありますか?

25
mylord

Android_HOME変数が誤って設定されている可能性があることに気付きました-私が知る限り、それはあなたのSDKフォルダのルート(Android_SDKに設定されているもの)に設定する必要があり、それを試してください(そしてあなたがまだ両方を持っていることを確認してくださいパス上のAndroid_HOME/toolsおよび$ Android_HOME/platform-tools)。

9
Marxama

私は何時間も頭を壁にぶつけて、最終的に簡単な解決策を思いつきました。プロジェクトディレクトリに移動し、2つのコマンドを発行しました。

cordova platform remove Android
cordova platform add Android

「cordova build Android」で再コンパイルすると、魅力的に機能しました。

コルドバはおそらくいくつかのファイルを更新したかったと思います。

===== Ionic ========の更新

ionicフレームワークを使用している場合、これらはあなたの救助のためのコマンドです:

ionic platform remove Android
ionic platform add Android

これは通常、コンパイルプロセスを中断(Ctrl-C)したときに発生することに気づきました。

20
AnR

同じ問題で実行し、config.xmlの文字以外の文字をエスケープすることで解決しました。特にname属性の場合:

<name>Temps d'espera</name>

私はそれを次のように変更しました:

<name>Temps d\'espera</name>

そして、それは完璧に動作します。それが役に立てば幸い。

2
Enric Mieza

@mylord私は同様のエラーがあり、それは無効なデバッグ証明書が原因でした。 Linuxの場合〜/ .Android debug.keystoreファイルを削除します。

次回ビルドするとき、ビルドツールは新しいキーストアとデバッグキーを再生成します。

これは私のために解決しました。これがお役に立てば幸いです。

1
bonitarunner

「phonegap serve」を実行中にこの同じ問題に遭遇しましたが、解決策は非常に異なっていました。コンピューターを再起動すると、操作が機能することに気付きました。他の誰かがこの問題に遭遇した場合に備えて。これがUbuntu 15のソリューションです

echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p

stackoverflowスレッドから取得されました Grunt watch error-Waiting ... Fatal error:watch ENOSPC

ポスターのエラーに加えて、エラーが発生しました

at exports._errnoException (util.js:856:11)
at FSWatcher.start (fs.js:1313:19)
at Object.fs.watch (fs.js:1341:11)

さらに下。

1
user3071643

同じ問題がありました。これは、同じ名前のアプリ(私の場合は同じ逆スタイルのドメイン名)が、Google Playストア(ベータ版リリース)から発信されたAndroidデバイス)。

0
user3094755

何かを変更する前に、空のcordovaプロジェクトを作成をビルドしてみてください。問題はプロジェクト固有であるかどうかがわかります。

多くの変更を行った後、同じ名前の2つのフォルダーjqueryjQueryを持たないようにしました。

0
Ghominejad

同じエラーメッセージが表示されますが、Android_HOMEの設定は正しいです。エラーは、\ platforms\Android\ant-buildフォルダーの.apkファイルを開いたことが原因であることがわかりました。 .apkファイルを占有する7Zipを閉じた後、antビルドが渡されました。

0
wangf