在设备Android上构建时出错

时间:2015-06-23 11:16:56

标签: java android cordova android-activity phonegap-build

我想在我的真实设备Android上运行我的应用,但收到此错误:

Running command: D:\WebStorm\Path\platforms\android\cordova\run.bat ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk JAVA_HOME=C:\Program Files\Java\jdk1.8.0_40 WARNING : No target specified, deploying to device '02c5cabed02456d5'. Running: D:\WebStorm\Path\platforms\android\gradlew cdvBuildDebug -b D: \WebStorm\Path\platforms\android\build.gradle
-PcdvBuildArch=arm -Dorg. gradle.daemon=true Downloading http://services.gradle.org/distributions/gradle-2.2.1-all.zip

Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException : Connection refused: connect
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc essManager.java:78)
        at org.gradle.wrapper.Install.createDist(Install.java:47)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48) Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketI mpl.java:79)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.ja va:345)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocket Impl.java:206)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java :188)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
        at java.net.Socket.connect(Socket.java:589)
        at java.net.Socket.connect(Socket.java:538)
        at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
        at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
        at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
        at sun.net.www.http.HttpClient.New(HttpClient.java:308)
        at sun.net.www.http.HttpClient.New(HttpClient.java:326)
        at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLC onnection.java:1168)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConn ection.java:1104)
        at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConne ction.java:998)
        at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection .java:932)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLCo nnection.java:1512)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon nection.java:1440)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:59)
        at org.gradle.wrapper.Download.download(Download.java:45)
        at org.gradle.wrapper.Install$1.call(Install.java:60)
        at org.gradle.wrapper.Install$1.call(Install.java:47)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc essManager.java:65)
        ... 3 more

D:\WebStorm\Path\platforms\android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^ Error code 1 for command: cmd with args: /s /c "D:\WebStorm\Path\platfo rms\android\gradlew cdvBuildDebug -b D:\WebStorm\Path\platforms\android \build.gradle -PcdvBuildArch=arm -Dorg.gradle.daemon=true" ERROR running one or more of the platforms: Error: D:\WebStorm\Path\pla tforms\android\cordova\run.bat: Command failed with exit code 8 You may not have the required environment or OS to run this project

我安装了Android sdk,并在Windows7中添加了我的Path:

C:\Development\android-sdk\platform-tools;
C:\Development\android-sdk\tools;
C:\Development\android-sdk\android-sdk

问题出在哪里???

3 个答案:

答案 0 :(得分:16)

似乎仅与代理有关。 您可以通过两种方式设置代理。

  1. 创建/修改gradle.properties @ c:\Users\<username>\.gradle\
  2.   

    OR

    1. 转到您的项目位置,并执行与上述相同的操作
    2.   

      示例:platforms/android/gradle.properities

      1. 在文件
      2. 中写下以下内容
        systemProp.http.proxyHost=proxyhost
        systemProp.http.proxyPort=8080
        systemProp.http.proxyUser=username
        systemProp.http.proxyPassword=pwd
        systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost
        systemProp.https.proxyHost=proxyhost
        systemProp.https.proxyPort=8080
        systemProp.https.proxyUser=username
        systemProp.https.proxyPassword=pwd
        systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost
        

答案 1 :(得分:5)

此链接帮助了我:http://forum.ionicframework.com/t/proxy-error-when-downloading-gradle-zip-during-ionic-emulate-android/31701

要查找.gradle,请转到您的用户文件夹(默认为c:\Users\<your login>)。如果gradle.properties不存在,只需创建一个

答案 2 :(得分:3)

查看您的堆栈跟踪,它似乎是某种连接问题。您的计算机是否正在使用任何代理连接到网络?如果是,则必须为您的构建工具配置。我可以看到它只是试图下载 gradle-2.2.1-all.zip ,并且由于连接问题而失败。

解决方案:在nodejs中配置代理的步骤

npm config set proxy http://proxy.company.com:8080

npm config set https-proxy http://proxy.company.com:8080

希望信息对您有所帮助。

此致 人士Himanshu