简体   繁体   English

使用 Gradle(代理后)构建 Android 失败

[英]Android Build with Gradle(Behind Proxy) failing

This question is similar to this Android build issue这个问题类似于这个Android 构建问题

I am setting up CI for Android build in a Mac mini(10.12).我正在 Mac mini (10.12) 中为 Android 构建设置 CI。

We have a corp proxy and that is the reason causing all these issues I think.我们有一个公司代理,这就是我认为导致所有这些问题的原因。
First I tried setting proxy info in ~/.bash_profile.首先,我尝试在 ~/.bash_profile 中设置代理信息。

Then I set up cntlm and tried to build Android project.然后我设置了 cntlm 并尝试构建 Android 项目。 ANDROID_HOME is set to /Users/jenkins/home/android-sdk ANDROID_HOME 设置为 /Users/jenkins/home/android-sdk

I got this error我收到这个错误

NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/jenkins/home/android-sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-3.xml
java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-2.xml
java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-1.xml
java.net.ConnectException: Connection refused (Connection refused)
Failed to download any source lists!

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> java.lang.NullPointerException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Next I ran ./gradlew build --info and got below output接下来我运行 ./gradlew build --info 并得到低于输出

Initialized native services in: /Users/jenkins/.gradle/native
Connected to daemon DaemonInfo{pid=6465, address=[3646567b-c480-4beb-a6d2-2ba0120d1cd8 port:54872, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1506668208517, context=DefaultDaemonContext[uid=6c85c027-6030-4dfe-91b8-6a40166e80af,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home,daemonRegistryDir=/Users/jenkins/.gradle/daemon,pid=6465,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=AU,-Duser.language=en,-Duser.variant]}. Dispatching request Build{id=f5180918-cde6-414f-8694-c8777c5c6d05.1, currentDir=/Users/jenkins/home/ws/tankstream-android/tankstreamandroid}.
Received result org.gradle.launcher.daemon.protocol.BuildStarted@2d6c53fc from daemon DaemonInfo{pid=6465, address=[3646567b-c480-4beb-a6d2-2ba0120d1cd8 port:54872, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1506668208517, context=DefaultDaemonContext[uid=6c85c027-6030-4dfe-91b8-6a40166e80af,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home,daemonRegistryDir=/Users/jenkins/.gradle/daemon,pid=6465,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=AU,-Duser.language=en,-Duser.variant]} (build should be starting).
The client will now receive all logging from the daemon (pid: 6465). The daemon log file: /Users/jenkins/.gradle/daemon/3.3/daemon-6465.out.log
Starting 9th build in daemon [uptime: 28 mins 20.507 secs, performance: 100%, no major garbage collections]
Executing build with daemon context: DefaultDaemonContext[uid=6c85c027-6030-4dfe-91b8-6a40166e80af,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home,daemonRegistryDir=/Users/jenkins/.gradle/daemon,pid=6465,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=AU,-Duser.language=en,-Duser.variant]
Creating new cache for plugin-use-metadata, path /Users/jenkins/.gradle/caches/3.3/plugin-resolution/plugin-use-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@20ff28b
Creating new cache for client-status, path /Users/jenkins/.gradle/caches/3.3/plugin-resolution/client-status.bin, access org.gradle.cache.internal.DefaultCacheAccess@20ff28b
Starting Build
Settings evaluated using settings file '/Users/jenkins/home/ws/tankstream-android/tankstreamandroid/settings.gradle'.
Projects loaded. Root project using build file '/Users/jenkins/home/ws/tankstream-android/tankstreamandroid/build.gradle'.
Included projects: [root project 'tankstreamandroid', project ':app']
Evaluating root project 'tankstreamandroid' using build file '/Users/jenkins/home/ws/tankstream-android/tankstreamandroid/build.gradle'.
Creating new cache for metadata-2.23/module-metadata, path /Users/jenkins/.gradle/caches/modules-2/metadata-2.23/module-metadata.bin, access org.gradle.cache.internal.DefaultCacheAccess@1a84b028
Creating new cache for metadata-2.23/artifact-at-repository, path /Users/jenkins/.gradle/caches/modules-2/metadata-2.23/artifact-at-repository.bin, access org.gradle.cache.internal.DefaultCacheAccess@1a84b028
Evaluating project ':app' using build file '/Users/jenkins/home/ws/tankstream-android/tankstreamandroid/app/build.gradle'.
Using 4 worker leases.
Creating configuration compile
Creating configuration apk
Creating configuration provided
Creating configuration wearApp
Creating configuration annotationProcessor
Creating configuration jackPlugin
Creating configuration androidTestCompile
Creating configuration androidTestApk
Creating configuration androidTestProvided
Creating configuration androidTestWearApp
Creating configuration androidTestAnnotationProcessor
Creating configuration androidTestJackPlugin
Creating configuration testCompile
Creating configuration testApk
Creating configuration testProvided
Creating configuration testWearApp
Creating configuration testAnnotationProcessor
Creating configuration testJackPlugin
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/jenkins/home/android-sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Creating configuration debugCompile
Creating configuration debugApk
Creating configuration debugProvided
Creating configuration debugWearApp
Creating configuration debugAnnotationProcessor
Creating configuration debugJackPlugin
Creating configuration testDebugCompile
Creating configuration testDebugApk
Creating configuration testDebugProvided
Creating configuration testDebugWearApp
Creating configuration testDebugAnnotationProcessor
Creating configuration testDebugJackPlugin
Creating configuration releaseCompile
Creating configuration releaseApk
Creating configuration releaseProvided
Creating configuration releaseWearApp
Creating configuration releaseAnnotationProcessor
Creating configuration releaseJackPlugin
Creating configuration testReleaseCompile
Creating configuration testReleaseApk
Creating configuration testReleaseProvided
Creating configuration testReleaseWearApp
Creating configuration testReleaseAnnotationProcessor
Creating configuration testReleaseJackPlugin
Parsing the SDK, no caching allowed
SDK initialized in 3 ms
Creating new cache for metadata-2.23/artifact-at-url, path /Users/jenkins/.gradle/caches/modules-2/metadata-2.23/artifact-at-url.bin, access org.gradle.cache.internal.DefaultCacheAccess@1a84b028
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/appcompat-v7/25.3.1/appcompat-v7-25.3.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.2/constraint-layout-1.0.2.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/constraint/constraint-layout/1.0.2/constraint-layout-1.0.2.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/design/25.3.1/design-25.3.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/design/25.3.1/design-25.3.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/support-v4/25.3.1/support-v4-25.3.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/support-v4/25.3.1/support-v4-25.3.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/google/android/gms/play-services-maps/11.0.1/play-services-maps-11.0.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/google/android/gms/play-services-maps/11.0.1/play-services-maps-11.0.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/google/android/gms/play-services-location/11.0.1/play-services-location-11.0.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/google/android/gms/play-services-location/11.0.1/play-services-location-11.0.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/google/android/gms/play-services-plus/11.0.1/play-services-plus-11.0.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/google/android/gms/play-services-plus/11.0.1/play-services-plus-11.0.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/google/android/gms/play-services-analytics/11.0.1/play-services-analytics-11.0.1.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/google/android/gms/play-services-analytics/11.0.1/play-services-analytics-11.0.1.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/cardview-v7/23.4.0/cardview-v7-23.4.0.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/cardview-v7/23.4.0/cardview-v7-23.4.0.jar]
Resource missing. [HTTP GET: http://jcenter.bintray.com/com/android/support/customtabs/23.4.0/customtabs-23.4.0.pom]
Resource missing. [HTTP HEAD: http://jcenter.bintray.com/com/android/support/customtabs/23.4.0/customtabs-23.4.0.jar]
Creating new cache for metadata-2.23/module-artifacts, path /Users/jenkins/.gradle/caches/modules-2/metadata-2.23/module-artifacts.bin, access org.gradle.cache.internal.DefaultCacheAccess@1a84b028
Parsing /Users/jenkins/home/android-sdk/build-tools/25.0.2/package.xml
Parsing /Users/jenkins/home/android-sdk/build-tools/26.0.1/package.xml
Parsing /Users/jenkins/home/android-sdk/build-tools/26.0.2/package.xml
Parsing /Users/jenkins/home/android-sdk/emulator/package.xml
Parsing /Users/jenkins/home/android-sdk/patcher/v4/package.xml
Parsing /Users/jenkins/home/android-sdk/platform-tools/package.xml
Parsing /Users/jenkins/home/android-sdk/platforms/android-25/package.xml
Parsing /Users/jenkins/home/android-sdk/platforms/android-26/package.xml
Parsing /Users/jenkins/home/android-sdk/tools/package.xml
java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-3.xml
java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-2.xml
java.net.ConnectException: Connection refused (Connection refused)
IOException: https://dl.google.com/android/repository/addons_list-1.xml
java.net.ConnectException: Connection refused (Connection refused)
Failed to download any source lists!

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> java.lang.NullPointerException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 10.186 secs
Stopped 0 worker daemon(s).
Received result Failure[value=org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':app'.] from daemon DaemonInfo{pid=6465, address=[3646567b-c480-4beb-a6d2-2ba0120d1cd8 port:54872, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1506668208517, context=DefaultDaemonContext[uid=6c85c027-6030-4dfe-91b8-6a40166e80af,javaHome=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home,daemonRegistryDir=/Users/jenkins/.gradle/daemon,pid=6465,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=256m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx1024m,-Dfile.encoding=UTF-8,-Duser.country=AU,-Duser.language=en,-Duser.variant]} (build should be done).

I tried putting gradle.properties in ~/.gradle/ and in /Users/jenkins/home/android-sdk/platforms/我尝试将 gradle.properties 放在 ~/.gradle/ 和 /Users/jenkins/home/android-sdk/platforms/

Any idea what can be done?知道可以做什么吗?

Note : Same project works fine from android Studio in a windows machine and in linux machine( after I downloaded google repository)注意:同一项目在 Windows 机器和 linux 机器中的 android Studio 中运行良好(在我下载谷歌存储库之后)
Thanks in advance.提前致谢。

Check app/build.gradle to find the required Build Tools version used by the project.检查app/build.gradle以查找项目使用的所需构建工具版本。 For example:例如:

android {
    ...
    buildToolsVersion "29.0.2"
    ...
}

Now go to Android Studio > SDK Tools > Select "Show Package Details".现在转到 Android Studio > SDK 工具 > 选择“显示包详细信息”。

Find the Build Tools version you need under Android SDK Build-Tools.在 Android SDK Build-Tools 下找到你需要的 Build Tools 版本。 Select that version and click OK to install it.选择该版本并单击“确定”进行安装。

I figured it out.我想通了。 The issue was in the build.gradle file.问题出在 build.gradle 文件中。 Apparently we need to use multiple repositories for Windows / Linux / Mac.显然,我们需要为 Windows / Linux / Mac 使用多个存储库。

1) While building in windows, repositories from http://jcenter.bintray.com/ is enough. 1) 在 Windows 中构建时,来自http://jcenter.bintray.com/存储库就足够了。

But while doing Android build on Mac / Linux, we need https://maven.google.com但是在 Mac / Linux 上构建 Android 时,我们需要https://maven.google.com

Hence I added因此我补充说

  maven {
             url 'https://maven.google.com'
         }

and my final build.gradle looks like below.我的最终 build.gradle 如下所示。

   // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter {
            url "http://jcenter.bintray.com/"
        }
        maven {
            url 'https://maven.google.com'
        }

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

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter {
            url "http://jcenter.bintray.com/"
        }
        maven {
             url 'https://maven.google.com'
         }
    }
}

Now builds are happening on Windows / Linux / Mac.现在构建正在 Windows / Linux / Mac 上进行。

In my case I was getting the same error but it was because Build Tools version was not recognized in the Intranet.就我而言,我遇到了同样的错误,但这是因为 Intranet 中无法识别 Build Tools 版本。

Changing it to the latest tools version number fixed the problem:将其更改为最新的工具版本号解决了问题:

Check latest SDK Build tools versions 检查最新的 SDK Build 工具版本

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM