javascript - meteor run android-spawn ENOENT 和来自 Cordova 的 gradle 错误

标签 javascript android cordova meteor gradle

我正在尝试在 Android 设备和/或模拟器上运行 Meteor 项目。当我运行 meteor run --verbose androidmeteor run --verbose android-device 时,我收到与 Cordova 相关的错误,无法找到某些 gradle 文件。这是我的控制台的一些输出:

sarah@sarah-ThinkPad-X220:~/simple-todos$ meteor run --verbose android
Getting installed version for platform android in Cordova project
Checking Cordova requirements for platform Android
[[[[[ ~/simple-todos ]]]]]                    

=> Started proxy.                             
=> Started MongoDB.                           
Local package version is up-to-date: autopublish@1.0.4
<... removed some other "Local package" messages here ...>
Preparing Cordova project from app bundle     
Copying resources for mobile apps             
Writing new config.xml                        
Preparing Cordova project for platform Android
Running Cordova app for platform Android with options --emulator
ANDROID_HOME=/home/sarah/Android/Sdk/        |
JAVA_HOME=/usr/lib/jvm/default-java
=> Started your app.                          

=> App running at: http://localhost:3000/     
WARNING : no emulator specified, defaulting to nexus4
Waiting for emulator...oid Emulator          |
emulator: UpdateChecker: skipped version check
BOOT COMPLETEpp on Android Emulator          -                                               
cp: no such file or directory: /home/sarah/Android/Sdk/tools/templates/gradle/wrapper/gradlew

chmod: File not found: /home/sarah/simple-todos/.meteor/local/cordova-build/platforms/android/gradle/wrapper/gradle-wrapper.properties

sed: no such file or directory: /home/sarah/simple-todos/.meteor/local/cordova-build/platforms/android/gradle/wrapper/gradle-wrapper.properties

Running: /home/sarah/simple-todos/.meteor/local/cordova-build/platforms/android/gradlew cdvBuildDebug -b /home/sarah/simple-todos/.meteor/local/cordova-build/platforms/android/build.gradle -PcdvBuildArch=x86 -Dorg.gradle.daemon=true

events.js:72app on Android Emulator          \
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:1011:11)
    at Process.ChildProcess._handle.onexit (child_process.js:802:34)
=> Errors executing Cordova commands:         

   While running Cordova app for platform Android with options --emulator:
   Error: Command failed:                     
   /home/sarah/simple-todos/.meteor/local/cordova-build/platforms/android/cordova/run --emulator

   at ChildProcess.exitCallback (/tools/utils/processes.js:137:23)
   at ChildProcess.emit (events.js:98:17)
   at Process.ChildProcess._handle.onexit (child_process.js:820:12)

ExitWithCode:1

确实,它试图访问的文件和目录并不存在。 $ANDROID_HOME/tools/template/gradle/wrapper 没有目录 gradlew

sarah@sarah-ThinkPad-X220:~/Android/Sdk/tools/templates/gradle/wrapper$ ls
gradle

同样,我的~/simple-todos/.meteor/local/cordova-build/platforms/android/gradle/wrapper目录下根本没有文件,所以没有gradle-wrapper.properties.

我也不太确定 spawn ENOENT 错误的含义。

我该如何解决这个问题?

编辑:我想测试 gradle 在我的机器上是否正常工作,所以我在 Android Studio 中制作了一个应用程序并在我的手机上运行——运行良好。我的 Meteor 项目仍然无法在 Android 上运行,但我认为这告诉我 gradle 正在(某处)在我的计算机上运行。

编辑:我在我的电脑上搜索了一个gradlew目录,我找到的唯一目录是在android-studio中,而不是在我的 $ANDROID_HOME(~\Android/Sdk)。不确定如何处理此信息,但它似乎相关。

编辑 我想到 gradle -v 的输出可能有用:

$ gradle -v

------------------------------------------------------------
Gradle 2.5
------------------------------------------------------------

Build time:   2015-08-31 14:26:53 UTC
Build number: none
Revision:     UNKNOWN

Groovy:       2.4.3
Ant:          Apache Ant(TM) version 1.9.6 compiled on July 8 2015
JVM:          1.7.0_95 (Oracle Corporation 24.95-b01)
OS:           Linux 4.2.0-23-generic amd64

最佳答案

初始免责声明:我不是很熟悉您在 android+gradle 之上使用的特定工具,但我会尽力提供帮助。

这个值得一读:https://docs.gradle.org/current/userguide/gradle_wrapper.html

此外,您可能想先在系统上设置 gradle,然后仔细检查 gradle home 是否已设置(*并非总是必要,但取决于 android studio 等其他东西自动引入):https://docs.gradle.org/current/userguide/installation.html

我的猜测是您正在使用的工具试图找到它希望在您的项目中可用的系统 gradle 和/或 gradlew...并且它正在混淆。

关于javascript - meteor run android-spawn ENOENT 和来自 Cordova 的 gradle 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36144649/

相关文章:

javascript - PushNotificationIOS.presentLocalNotification() 在 native react 中不起作用

javascript - 尝试找到使用 html2canvas 制作 OpenLayers map 屏幕截图的最佳解决方案。 map 元素丢失 css 类,图像无法查看

java - Java Android 中动态加载类

java - Android:多个类使用相同的 XML 布局

javascript - Jquery 加载并获取字符串结果

javascript - 隐藏链接时隐藏元素符号列表使用 Jquery 或 CSS3

android - 如果设备同时支持 armeabi-v7a 和 arm64-v8a,是否存在 playstore 服务的情况,或者我只会从两者中获得一个架构 apk

sqlite - phonegap sqlite数据库总和查询结果

android - ionic 无法使状态栏覆盖

android - 如何防止 Android 三星平板电脑上带有 Phonegap 的 Jquery Mobile 使用横向高度作为纵向高度?