离子构建 android 失败,来自 Gradle 的 403 Http 响应,JAVA_HOME 无效

Ionic build android failed with 403 Http respose from Gradle, JAVA_HOME not valid

我正在使用 Windows 7X64 机器并尝试使用 cordova/ionic CLI v1.5.5 构建 Andriod 应用程序。我收到无法解决的错误。

"You may not have the required environment or OS to build this project"

使用命令 ionic build androidcordova build android。命令 ionic platform add android 成功。我正在使用 Android SDK 管理器使用 Android sdk (API 22)。我还确保正确设置了 PATH 变量。

完整的过程记录为:

C:\Users\ddevkota\Desktop\freshIonic>ionic build android
Running command: "C:\Program Files\nodejs\node.exe" C:\Users\ddevkota\Desktop\fr
eshIonic\hooks\after_prepare0_add_platform_class.js C:\Users\ddevkota\Desktop
\freshIonic
add to body class: platform-android
Running command: cmd "/s /c "C:\Users\ddevkota\Desktop\freshIonic\platforms\andr
oid\cordova\build.bat""
ANDROID_HOME=C:\Users\ddevkota\AppData\Local\Android\sdk
JAVA_HOME=C:\Progra~1\Java\jdk1.7.0_15
Running: C:\Users\ddevkota\Desktop\freshIonic\platforms\android\gradlew cdvBuild
Debug -b C:\Users\ddevkota\Desktop\freshIonic\platforms\android\build.gradle -Do
rg.gradle.daemon=true
Downloading http://services.gradle.org/distributions/gradle-2.2.1-all.zip

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Serv
er returned HTTP response code: 403 for URL: http://services.gradle.org/distribu
tions/gradle-2.2.1-all.zip
        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.io.IOException: Server returned HTTP response code: 403 for URL:
 http://services.gradle.org/distributions/gradle-2.2.1-all.zip
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.java:1625)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:59)
        at org.gradle.wrapper.Download.download(Download.java:45)
        at org.gradle.wrapper.Install.call(Install.java:60)
        at org.gradle.wrapper.Install.call(Install.java:47)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.java:65)
        ... 3 more

C:\Users\ddevkota\Desktop\freshIonic\platforms\android\cordova\node_modules\q\q.
js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s /c "C:\Users\ddevkota\Desktop\freshI
onic\platforms\android\gradlew cdvBuildDebug -b C:\Users\ddevkota\Desktop\freshI
onic\platforms\android\build.gradle -Dorg.gradle.daemon=true"
ERROR building one of the platforms: Error: cmd: Command failed with exit code 1

You may not have the required environment or OS to build this project
Error: cmd: Command failed with exit code 1
    at ChildProcess.whenDone (C:\Users\ddevkota\AppData\Roaming\npm\node_modules
\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:134: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)

提前感谢您的帮助。

注意:这原来是客户端 (403) 中的权限问题。我将我的机器连接到不同的网络并开始工作。所有构建过程。如果你想手动完成这里是我得到的程度。

无效的解决方案JAVA_HOME

在花了几天时间卸载所有版本的 java 后,只重新安装一个版本并将环境变量JAVA_HOME 设置为 C:\Program Files\Java\jdk1.7.0_15 我解决了问题。

但是在下载 gradle 时出现另一个离子构建 android 错误的问题 gradle。

当我将 gradle 添加到我的离线项目时,这个问题得到了解决。

不Gradle 403 Http响应的解决方法

执行以下操作: 从发布的 link 下载 gradle 后(这里是 https://services.gradle.org/distributions/gradle-2.2.1-all.zip)将其粘贴到 myApp\platforms\android\gradle\gradle-2.2.1-all.zip 之类的地方,然后在 myApp\platforms\android\cordova\lib\build.js 的 build.js 中找到:

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

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

var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.zip';

仍在构建中,并将继续发布解决方案。在 ionic 论坛中创建了一个关于其他问题的线程 here

不Gradle 403 Http响应的解决方法

在以下位置找到 distributionUrl 变量:

myapp\platforms\android\cordova\lib\builders\GradleBuilder.js

将此行中的 http 值更改为 https

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'https://services.gradle.org/distributions/gradle-2.2.1-all.zip';