Android Studio 3.0中的Gradle构建错误

Jam*_*man 6 android gradle android-studio android-studio-3.0

你可以帮我解决Android 3.0中的Gradle构建问题吗?

我是Android Studio新手.以下是我在AS 3.0中的配置:

gradle-> wrapper-> gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip
Run Code Online (Sandbox Code Playgroud)

build.gradle依赖项(Gradle的Android插件):

dependencies {classpath 'com.android.tools.build:gradle:3.0.0'}
Run Code Online (Sandbox Code Playgroud)

Android Studio->设置

Android Studio项目结构

来自Android Studio的Stacktrace:

D:\AppiumAutomation\MobileTest>gradlew assemble --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'MobileTest'.
> Could not resolve all files for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.0.0.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.0.0.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification pat
h to requested target
      > Could not resolve com.android.tools.build:gradle:3.0.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification pat
h to requested target
Run Code Online (Sandbox Code Playgroud)

小智 5

这是与Android Studio 3.0和企业网络相关的问题.我有同样的问题.

Error:Could not resolve all files for configuration ':app:debugAndroidTestRuntimeClasspath'.
    > Could not resolve com.android.support.test:runner:1.0.1.
      Required by:
          project :app
       > Could not resolve com.android.support.test:runner:1.0.1.
          > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom'.
             > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom'.
                > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    > Could not resolve com.android.support.test.espresso:espresso-core:3.0.1.
      Required by:
          project :app
       > Could not resolve com.android.support.test.espresso:espresso-core:3.0.1.
          > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom'.
             > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom'.
                > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Run Code Online (Sandbox Code Playgroud)

我给你留下两个解决方案:

第一:您必须手动将证书添加到您的Java安全证书(由Android使用):

C:\ Program Files\Android\Android Studio\jre\jre\lib\security\cacerts

解决方案01(对我不起作用):

去:

C:\Program Files\Android\Android Studio\jre\jre\bin
Run Code Online (Sandbox Code Playgroud)

下载您需要的证书(只需复制带有问题的URL并粘贴到其中<remote_host_name>):

keytool -J-Dhttps.proxyHost=<proxy_hostname> -J-Dhttps.proxyPort=<proxy_port> -printcert -rfc -sslserver <remote_host_name:remote_ssl_port> > <name.cer>

Example:
C:\Program Files\Android\Android Studio\jre\jre\bin>keytool -J-Dhttps.proxyHost= proxy.mycompany.com -J-Dhttps.proxyPort=80 -printcert -rfc -sslserver https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom > maven2.cer
Run Code Online (Sandbox Code Playgroud)

并运行命令:

keytool -import -noprompt -trustcacerts -keystore ..\lib\security\cacerts -importcert -alias <AliasName> -file <name.cer> -storepass <cacertsPassword>
Run Code Online (Sandbox Code Playgroud)

如果您从未更改过cacerts的密码,则默认密码为changeit:

Example:
C:\Program Files\Android\Android Studio\jre\jre\bin>keytool -import -noprompt -trustcacerts -keystore ..\lib\security\cacerts -importcert -alias Maven -file maven2.cer -storepass changeit
Run Code Online (Sandbox Code Playgroud)

解决方案02(为我工作):

下载进入URL站点的pom并将其存储在本地仓库中:

Ex:
If your missing resoruce is:
https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom

Download it and put it in:
C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom
Run Code Online (Sandbox Code Playgroud)