React-Native Android 构建失败 - 无法找到请求目标的有效认证路径

Posted

技术标签:

【中文标题】React-Native Android 构建失败 - 无法找到请求目标的有效认证路径【英文标题】:Ract-Native Android build failed - unable to find valid certification path to requested target 【发布时间】:2019-02-20 14:10:48 【问题描述】:

我使用“react-native init HelloWorld”创建了示例 react-native 项目。当我运行“react-native run-android”时,我不断看到以下错误。我尝试了在这些链接上为类似解决方案提供的解决方案。但它并没有解决问题。

Post1 Post2

React Native 项目中的 Android Build.gradle:

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

buildscript 
    ext 
        buildToolsVersion = "27.0.3"
        minSdkVersion = 16
        compileSdkVersion = 27
        targetSdkVersion = 26
        supportLibVersion = "27.1.1"
    
    repositories 
        jcenter()
        google()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:3.1.4'

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


allprojects 
    repositories 
        mavenLocal()
        jcenter()
        maven 
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        
        google()
    



task wrapper(type: Wrapper) 
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")

react-native 项目中的 gradle-wrapper.properties 文件

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-4.4-all.zip

错误:

D:\My Projects\PULSE\Phase II\ReactNative\Projects\HellowWorld>react-native run-android
Starting JS server...
Building and installing the app on the device (cd android && gradlew.bat installDebug)...
FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':app:debugCompileClasspath'.
> Could not resolve com.facebook.infer.annotation:infer-annotation:0.11.2.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.facebook.infer.annotation:infer-annotation:0.11.2.
      > Could not get resource 'https://jcenter.bintray.com/com/facebook/infer/annotation/infer-annotation/0.11.2/infer-annotation-0.11.2.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/facebook/infer/annotation/infer-annotation/0.11.2/infer-annotation-0.11.2.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.facebook.infer.annotation:infer-annotation:0.11.2.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/facebook/infer/annotation/infer-annotation/0.11.2/infer-annotation-0.11.2.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/facebook/infer/annotation/infer-annotation/0.11.2/infer-annotation-0.11.2.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.facebook.fresco:fresco:1.10.0.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.facebook.fresco:fresco:1.10.0.
      > Could not get resource 'https://jcenter.bintray.com/com/facebook/fresco/fresco/1.10.0/fresco-1.10.0.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/facebook/fresco/fresco/1.10.0/fresco-1.10.0.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.facebook.fresco:fresco:1.10.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/facebook/fresco/fresco/1.10.0/fresco-1.10.0.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/facebook/fresco/fresco/1.10.0/fresco-1.10.0.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.facebook.fresco:imagepipeline-okhttp3:1.10.0.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.facebook.fresco:imagepipeline-okhttp3:1.10.0.
      > Could not get resource 'https://jcenter.bintray.com/com/facebook/fresco/imagepipeline-okhttp3/1.10.0/imagepipeline-okhttp3-1.10.0.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/facebook/fresco/imagepipeline-okhttp3/1.10.0/imagepipeline-okhttp3-1.10.0.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.facebook.fresco:imagepipeline-okhttp3:1.10.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/facebook/fresco/imagepipeline-okhttp3/1.10.0/imagepipeline-okhttp3-1.10.0.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/facebook/fresco/imagepipeline-okhttp3/1.10.0/imagepipeline-okhttp3-1.10.0.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.facebook.soloader:soloader:0.5.1.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.facebook.soloader:soloader:0.5.1.
      > Could not get resource 'https://jcenter.bintray.com/com/facebook/soloader/soloader/0.5.1/soloader-0.5.1.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/facebook/soloader/soloader/0.5.1/soloader-0.5.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.facebook.soloader:soloader:0.5.1.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/facebook/soloader/soloader/0.5.1/soloader-0.5.1.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/facebook/soloader/soloader/0.5.1/soloader-0.5.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.google.code.findbugs:jsr305:3.0.2.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.google.code.findbugs:jsr305:3.0.2.
      > Could not get resource 'https://jcenter.bintray.com/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom'.
         > Could not GET 'https://jcenter.bintray.com/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.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.google.code.findbugs:jsr305:3.0.2.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.pom'.
         > Could not GET 'https://dl.google.com/dl/android/maven2/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.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.squareup.okhttp3:okhttp:3.10.0.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.squareup.okhttp3:okhttp:3.10.0.
      > Could not get resource 'https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.pom'.
         > Could not HEAD 'https://jcenter.bintray.com/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.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.squareup.okhttp3:okhttp:3.10.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.pom'.
         > Could not HEAD 'https://dl.google.com/dl/android/maven2/com/squareup/okhttp3/okhttp/3.10.0/okhttp-3.10.0.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.squareup.okhttp3:okhttp-urlconnection:3.10.0.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.squareup.okhttp3:okhttp-urlconnection:3.10.0.
      > Could not get resource 'https://jcenter.bintray.com/com/squareup/okhttp3/okhttp-urlconnection/3.10.0/okhttp-urlconnection-3.10.0.pom'.
         > Could not HEAD 'https://jcenter.bintray.com/com/squareup/okhttp3/okhttp-urlconnection/3.10.0/okhttp-urlconnection-3.10.0.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.squareup.okhttp3:okhttp-urlconnection:3.10.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.10.0/okhttp-urlconnection-3.10.0.pom'.
         > Could not HEAD 'https://dl.google.com/dl/android/maven2/com/squareup/okhttp3/okhttp-urlconnection/3.10.0/okhttp-urlconnection-3.10.0.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.squareup.okio:okio:1.14.0.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve com.squareup.okio:okio:1.14.0.
      > Could not get resource 'https://jcenter.bintray.com/com/squareup/okio/okio/1.14.0/okio-1.14.0.pom'.
         > Could not HEAD 'https://jcenter.bintray.com/com/squareup/okio/okio/1.14.0/okio-1.14.0.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.squareup.okio:okio:1.14.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/squareup/okio/okio/1.14.0/okio-1.14.0.pom'.
         > Could not HEAD 'https://dl.google.com/dl/android/maven2/com/squareup/okio/okio/1.14.0/okio-1.14.0.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 org.webkit:android-jsc:r174650.
  Required by:
      project :app > com.facebook.react:react-native:0.57.0
   > Could not resolve org.webkit:android-jsc:r174650.
      > Could not get resource 'https://jcenter.bintray.com/org/webkit/android-jsc/r174650/android-jsc-r174650.pom'.
         > Could not HEAD 'https://jcenter.bintray.com/org/webkit/android-jsc/r174650/android-jsc-r174650.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 org.webkit:android-jsc:r174650.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/org/webkit/android-jsc/r174650/android-jsc-r174650.pom'.
         > Could not HEAD 'https://dl.google.com/dl/android/maven2/org/webkit/android-jsc/r174650/android-jsc-r174650.pom'.
            > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

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

* Get more help at https://help.gradle.org

BUILD FAILED in 27s
1 actionable task: 1 executed
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

以下是我使用的 react-native 版本

【问题讨论】:

【参考方案1】:

由于某些原因,"cacerts" 文件损坏 - 位于我本地 PC 中的 "C:\Program Files\Java\jdk1.8.0_181\jre\lib\security"。所以我在重新安装jdk1.8.0_181后能够解决这个问题。

【讨论】:

以上是关于React-Native Android 构建失败 - 无法找到请求目标的有效认证路径的主要内容,如果未能解决你的问题,请参考以下文章

修复 React-Native run-android 上的构建失败

React-native 项目构建失败:找不到 com.android.tools.lint:lint-gradle:26.1.0

react-native run-android 失败:无法在设备上安装应用程序,请阅读上面的错误

React-native 构建失败:“无法创建任务 ':app:copyDownloadableDepsToLibs'”

从 github 打开 react-native 项目时构建失败

React-Native build release apk 执行 aapt 失败