【问题标题】:Gradlew throws java.net.SocketExceptionGradlew 抛出 java.net.SocketException
【发布时间】:2017-11-04 07:10:51
【问题描述】:

所以我为 Android 创建了一个 Qt 项目,但每当我尝试构建它时,我都会遇到该异常。我什至尝试在命令行中运行 gradlew 文件,结果相同。正如https://docs.gradle.org/current/userguide/userguide_single.html#properties 第12.3 节中指出的那样,无论我在哪里上网,它似乎都是代理或网络问题。我仔细检查了两个不同的网络,但我没有使用代理服务器。

这是自动生成的 build.gradle(有什么问题吗?)

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

android {
    /*******************************************************
     * The following variables:
     * - androidBuildToolsVersion,
     * - androidCompileSdkVersion
     * - qt5AndroidDir - holds the path to qt android files
     *                   needed to build any Qt application
     *                   on Android.
     *
     * are defined in gradle.properties file. This file is
     * updated by QtCreator and androiddeployqt tools.
     * Changing them manually might break the compilation!
     *******************************************************/

    compileSdkVersion androidCompileSdkVersion.toInteger()

    buildToolsVersion androidBuildToolsVersion

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
            aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
            res.srcDirs = [qt5AndroidDir + '/res', 'res']
            resources.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
       }
    }

    lintOptions {
        abortOnError false
    }
}

任何指针或想法将不胜感激!

[编辑]

堆栈跟踪:

C:\Users\fcente1a\Documents\build-and_test-Android_for_armeabi_v7a_GCC_4_9_Qt_5_
9_0_for_Android_armv72-Debug\android-build>gradlew --verbose
Downloading https://services.gradle.org/distributions/gradle-3.4-bin.zip

Exception in thread "main" java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:210)
        at java.net.SocketInputStream.read(SocketInputStream.java:141)
        at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
        at sun.security.ssl.InputRecord.read(InputRecord.java:503)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
        at sun.security.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1769)
        at sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:124
)
        at sun.security.ssl.Handshaker.kickstart(Handshaker.java:1067)
        at sun.security.ssl.SSLSocketImpl.kickstartHandshake(SSLSocketImpl.java:
1487)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.
java:1351)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403
)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387
)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:
559)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect
(AbstractDelegateHttpsURLConnection.java:185)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLCo
nnection.java:1546)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLCon
nection.java:1474)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Http
sURLConnectionImpl.java:254)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:60)
        at org.gradle.wrapper.Download.download(Download.java:45)
        at org.gradle.wrapper.Install$1.call(Install.java:62)
        at org.gradle.wrapper.Install$1.call(Install.java:48)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.java:69)
        at org.gradle.wrapper.Install.createDist(Install.java:48)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

C:\Users\fcente1a\Documents\build-and_test-Android_for_armeabi_v7a_GCC_4_9_Qt_5_
9_0_for_Android_armv72-Debug\android-build>

[二次编辑]

在将 url 更改为 http(不安全)或让 gradlew 获取本地文件后,我得到了这个:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'android-build'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:2.2.3.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:2.2.3.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/2.2.3/gradle-2.2.3.pom'.
               > Connection reset

【问题讨论】:

  • 如果您期望解决方案,您将需要整个堆栈跟踪/详细的错误消息。仅凭此帖子,我们不知道异常来自何处。
  • 看起来jcenter 可能有问题?尝试在您的 repositories 配置中添加 mavenCentral()
  • 嗯,谢谢,但还是同样的错误。
  • 如何(只是为了测试)一起删除 jcenter?它的两个定义。
  • 看起来还是一样。

标签: qt gradle gradlew


【解决方案1】:

您好像马上遇到了错误

正在下载https://services.gradle.org/distributions/gradle-3.4-bin.zip

所以我只是尝试通过 cURL 打这个,

$curl --head https://services.gradle.org/distributions/gradle-3.4-bin.zip

HTTP/1.1 301 Moved Permanently
Date: Fri, 02 Jun 2017 20:13:00 GMT
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Fri, 02 Jun 2017 21:13:00 GMT
Location: https://downloads.gradle.org/distributions/gradle-3.4-bin.zip
Server: cloudflare-nginx
CF-RAY: 368d121d6ad9568d-IAD

这显示了一个 301 重定向,如果下载代码没有正确处理它,这可以解释 Connection reset。我不知道此 URL 来自哪里,但您可以尝试将其替换为新目标:

https://downloads.gradle.org/distributions/gradle-3.4-bin.zip

答案 #2

你可以升级和使用2.3.0吗?这似乎是最新的,is definitely available in Central

【讨论】:

  • 这样仍然会产生相同的错误。我确实尝试使用 http,但收到了不同的错误消息。
  • 这真的很奇怪...试试here 发布的建议,并指向您手动下载的文件,而不是依赖内部下载器?
  • 这与我使用 http 时的效果相同。这需要很长时间,然后它会抛出不同的错误消息(新的错误消息现在附加到问题中)。
  • 是的:正在下载文件:/C:/Users/fcente1a/Documents/Chrome/gradle-3.4-bin.zip......
  • 它在核心上没有失败,它在第一个依赖项上失败了,> Could not resolve com.android.tools.build:gradle:2.2.3. 请尝试将其更改为使用2.3.0
猜你喜欢
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
  • 2015-08-07
  • 1970-01-01
  • 2020-09-20
相关资源
最近更新 更多