web-dev-qa-db-ja.com

Ionic build Android Gradleをダウンロードする際のエラー

私はIonicフレームワークに非常に新しいです:)

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

>ionic build Android」を使用すると、ダウンロードグラドルを開始できますが、ダウンロードできず、エラーが発生します。

このエラーの原因と修正方法を教えてください!

GradleをダウンロードしてPCにインストールしますが、もう一度ダウンロードしたいです。 Gradleをプロジェクトにオフラインで追加できますか?

C:\Users\LENOVO2014\test>ionic build Android
running cordova build Android
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-Android
Running command: C:\Users\LENOVO2014\myApp\platforms\Android\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\Android\gradlew cdvBuildDebug -b C:
\Users\LENOVO2014\myApp\platforms\Android\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\Android\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\Android\gradlew cdvBuildDebug -b C:\Users\LENOVO2014\myApp\platforms\Android
\build.gradle -Dorg.gradle.daemon=true"
ERROR building one of the platforms: Error: C:\Users\LENOVO2014\myApp\platforms\
Android\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\Android\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)
69
sadegh

Ionicバージョン1.7.14および次のファイルにあるdistributionUrlを使用しています。 myApp/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のような場所とbuild.jsに貼り付けますmyApp\platforms\Android\cordova\lib\build.jsはこれを見つけます:

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

そして、それをあなた自身のファイルの場所に置き換えます:

var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.Zip';
107
Spara

上記のソリューションには、約55MBのフォルダーに.Zipを含める必要があるため

次のコマンドを使用して、ビルド中にgradleの代わりにAntを使用するようにCLIを強制することもできます。

cordova build Android -- --ant
52
A.B

ネットワークプロキシがZipファイルのダウンロードをブロックしているため、この問題に遭遇しました。私が見つけたものは次のとおりです。

注:これは、Cordovaのライブラリを直接変更していないという点で「受け入れられた」回答とは異なります。これは、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を実行します

21
Jeff Woodard

コマンドラインからの別のオプションは、cordovaビルドコマンドの前に$ export Java_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911"を実行することです。

13
Lucas Massuh

ネットワークでプロキシを使用する必要がある場合は、gradle.propertiesファイルを以下の%USER_HOME%/.gradleに追加しますが、値はプロキシの詳細に置き換えます。これは私のために働いた。

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
8
Ben Morris

Cordova 6.0.0/Visual Studio Code 0.10.6

TL; DR

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

コードを開始してコンパイルします。

説明:

GradleBuilder.jsはdistributionUrlを次のように設定します。

var distributionUrl = process.env ['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'http \://services.gradle.org/distributions/gradle-2.2.1-all.Zip';

スクリプトはappName\platforms\Android\gradle\wrapperで実行されます

出力は次のとおりです。

ファイルをダウンロードしています://appname/platforms/Android/gradle/gradle-2.2.1-all.Zip

8
user5880697

こんにちは、私は同じ問題を抱えていました。

Platform\Android\cordova\lib\build.jsファイルで、変更しました

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

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

そしてそれは働いた。

6
sid1337

または、ローカルホストにWebサーバーがある場合、ダウンロードしてgradle(正確にテストされたバージョン、つまり http://downloads.gradle.org/distributions/gradle-2.2.1をダウンロードします。この投稿の時点で-all.Zip )wwwルートで、アプリケーションディレクトリ内のplatform\Android\cordova\lib\build.jsファイルを次のように変更します。

 var distributionUrl = 'distributionUrl=http\\://localhost/gradle-2.2.1-all.Zip';

URLを(httpアドレスではなく)ローカルファイルに変更すると、Windowsで機能しなくなり、URLのプロトコルが不明であると文句を言います。

3
wmac

私も同じ問題を抱えていましたが、ビルドツール24をアンインストールし、SDKマネージャーからビルドツール23をインストールすることで解決しました。

3
Emad Dehnavi

私は最近同じ問題に直面しており、あちこち検索しました。

最後に、最新のビルドで解決策を見つけました。

「ionic platform add Android」コマンドの後、platforms/Android/cordova/lib/builders/GradleBuilder.jsに移動します

検索

http\\://services.gradle.org/distributions/gradle-2.2.1-all.Zip

および変更

http\\://downloads.gradle.org/distributions/gradle-2.2.1-all.Zip
2
Tapan

Windows Defenderまたは他のウイルス対策システムがインストールを台無しにしているようです。したがって、ファイアウォールを一時的に無効にして、コマンドを再実行します。

ionic build Android (or ios)

最後に、メッセージBUILD SUCCESSFUL ...が表示されます。

0
Theophane Fotso

ここでのすべての答えは、これが一番上の答えよりも簡単にできる場合、すべて同じことを言っています。 Android SDKを更新すると修正されるはずです。ターミナルから次の1行を使用して修正できます。

Android update sdk --no-ui --all --filter "extra-Android-m2repository"

または

Android update sdk --no-ui --filter extra

this リポジトリの問題も参照してください(本質的に同じ問題です)。

しかし、あなたがそれを再構築した後、それは動作するはずです。

0
garrettmac

ionic開発に関する限り、GradleBuilder.jsのdistributionURLを下記のURLで変更する必要があります。

/ Android/cordova/lib/builders/GradleBuilder.js

var distributionUrl = process.env ['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'https://services.gradle.org/distributions/gradle-2.14.1-all.Zip';

0
Sachin Mishra