有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

下载Gradle时发生java Ionic构建Android错误

我对离子框架非常陌生:)

>npm install -g cordova
>npm install -g ionic
>ionic start test blank
>cd test
>ionic platform add 安卓

当我使用“>ionic build 安卓”时,开始下载gradle,但我无法下载并得到一个错误

是什么导致了这个错误?我如何修复它

我下载Gradle并将其安装在PC上,但它想再次下载。 我可以将Gradle添加到脱机项目中吗

C:\Users\LENOVO2014\test>ionic build 安卓
running cordova build 安卓
Running command: "C:\Program Files\nodejs\node.exe" C:\Users\LENOVO2014\myApp\ho
oks\after_prepare\010_add_platform_class.js C:\Users\LENOVO2014\myApp
add to body class: platform-安卓
Running command: C:\Users\LENOVO2014\myApp\platforms\安卓\cordova\build.bat
ANDROID_HOME=D:\program\Programing\Android\sdk
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_31
Running: C:\Users\LENOVO2014\myApp\platforms\安卓\gradlew cdvBuildDebug -b C:
\Users\LENOVO2014\myApp\platforms\安卓\build.gradle -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.SocketException:
 Connection reset
        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.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:189)
        at java.net.SocketInputStream.read(SocketInputStream.java:121)
        at java.io.BufferedInputStream.read1(BufferedInputStream.java:284)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        at sun.net.www.MeteredStream.read(MeteredStream.java:134)
        at java.io.FilterInputStream.read(FilterInputStream.java:133)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Http
URLConnection.java:3335)
        at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Http
URLConnection.java:3328)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:63)
        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

C:\Users\LENOVO2014\myApp\platforms\安卓\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s /c "C:\Users\LENOVO2014\myApp\platfo
rms\安卓\gradlew cdvBuildDebug -b C:\Users\LENOVO2014\myApp\platforms\安卓
\build.gradle -Dorg.gradle.daemon=true"
ERROR building one of the platforms: Error: C:\Users\LENOVO2014\myApp\platforms\
安卓\cordova\build.bat: Command failed with exit code 1
You may not have the required environment or OS to build this project
Error: C:\Users\LENOVO2014\myApp\platforms\安卓\cordova\build.bat: Command fa
iled with exit code 1
    at ChildProcess.whenDone (C:\Users\LENOVO2014\AppData\Roaming\npm\node_modul
es\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:131:23)
    at ChildProcess.emit (events.js:110:17)
    at maybeClose (child_process.js:1015:16)
    at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

共 (6) 个答案

  1. # 1 楼答案

    我使用的是Ionic版本1.7.14和以下文件中的distributionUrlmyApp/platforms/android/cordova/lib/builders/GradleBuilder.js.

    我必须指出这个答案中指定的本地下载的gradle

    我也有同样的问题。我离线将gradle添加到我的项目中

    从发布的链接(这里是http://services.gradle.org/distributions/gradle-2.2.1-all.zip)下载gradle后,将其粘贴到myApp\platforms\android\gradle\gradle-2.2.1-all.zip之类的地方,并在构建中进行粘贴。来自myApp\platforms\android\cordova\lib\build.js的js找到以下内容:

    var distributionUrl = 'distributionUrl=http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip';
    

    并将其替换为您自己的文件位置:

    var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.zip';
    
  2. # 2 楼答案

    Cordova 6.0.0/Visual Studio代码0.10.6

    TL;博士

    手动下载http://services.gradle.org/distributions/gradle-2.2.1-all.zip

    把它放在appName\platforms\android\gradle\

    set CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=..\gradle-2.2.1-all.zip
    

    启动代码并编译

    说明:

    格雷德堡。js将distributionUrl设置如下:

    var distributionUrl=进程。env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL']| | http\://服务。格拉德尔。org/distributions/gradle-2.2.1-all。拉链

    脚本在appName\platforms\android\gradle\wrapper中运行

    输出为:

    下载file://appname/platforms/android/gradle/gradle-2.2.1-all.zip

  3. # 3 楼答案

    如果需要在网络上使用代理,请在%USER_HOME%/.gradle中添加一个gradle.properties文件,如下所示,但用代理详细信息替换这些值。这对我有用

    gradlePropertiesProp=gradlePropertiesValue
    sysProp=shouldBeOverWrittenBySysProp   
    envProjectProp=shouldBeOverWrittenByEnvProp  
    systemProp.system=systemValue    
    systemProp.http.proxyHost=myproxy.com    
    systemProp.http.proxyPort=8080    
    systemProp.http.nonProxyHosts=\*.mydomain.com|localhost   
    systemProp.https.proxyHost=myproxy.com    
    systemProp.https.proxyPort=8080    
    systemProp.https.nonProxyHosts=\*.mydomain.com|localhost
    
  4. # 4 楼答案

    因为上面发布的解决方案需要包括。压缩到大约55MB的文件夹中

    还可以使用以下命令强制CLI在生成过程中使用Ant而不是gradle:

    cordova build android -- --ant
    
  5. # 5 楼答案

    我遇到了这个问题,因为我们的网络代理阻止了zip文件的下载。以下是我的发现:

    NOTE: this differs from the "accepted" answer in that we aren't modifying Cordova's library directly. This is far less prone to "error" or being overwritten when you run ionic state restore

    1. 下载gradle-http://services.gradle.org/distributions/gradle-2.2.1-all.zip

    2. 将此文件放入platforms/android/gradle。但是,如果要将其集成到构建过程中,您可能希望将其粘贴到不太易受影响的位置,并添加一个步骤将文件复制到该位置

    3. 将环境变量CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL设置为../gradle-2.2.1-all.zip

      • linux/osx:将export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.zip"添加到~/。bashrc文件
      • windows:setx CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.zip
    4. 运行ionic build android

  6. # 6 楼答案

    命令行中的另一个选项是在cordova build命令之前运行$ export JAVA_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911"