React Native项目Could not resolve all files for configuration 无法解析配置“:app:debugRuntimeClasspath”的所有文件

在新建react native项目运行时,gradle下载文件报错

> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.    > Failed to transform kotlinx-serialization-json-jvm-1.4.1.jar (org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.4.1) to match attributes {artifactType=android-java-res, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime, org.jetbrains.kotlin.platform.type=jvm}. 

踩坑过程

  1. 想着既然是 无法解析配置,不能匹配,那我就手动下一个kotlinx-serialization-json-jvm-1.4.1.jar ,然后放在了gradle对应的文件夹中,但是依然报错
  2. 删除了kotlinx-serialization-json-jvm文件夹贺gradle的cache文件夹,想着让gradle重新拉取以下文件,依然报错
  3. 查询其他类似经历后感觉还是出问题在下载不到文件的问题,我用的代理可能网络不太问题。为了解决这个问题我在.gradle文件下新建了一个init.gradle文件,在里面加上了阿里云的maven仓库,配置如下
allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/central/'
        def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/public/'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
			url 'https://maven.aliyun.com/repository/google/'
			url 'https://maven.aliyun.com/repository/gradle-plugin/'
        }
    }
 
 
    buildscript{
        repositories {
            def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/central/'
            def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/public/'
            all { ArtifactRepository repo ->
                if(repo instanceof MavenArtifactRepository){
                    def url = repo.url.toString()
                    if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                        remove repo
                    }
                    if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
                        project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                        remove repo
                    }
                }
            }
            maven {
                url ALIYUN_REPOSITORY_URL
                url ALIYUN_JCENTER_URL
				url 'https://maven.aliyun.com/repository/google/'
				url 'https://maven.aliyun.com/repository/gradle-plugin/'
            }
        }
    }
}

在工程文件对应的build.gradle文件中也加上阿里云的镜像库

    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
        google()
        mavenCentral()
        jcenter()
    }

注意

在更换了maven库后再运行项目,可能还会报错说某个文件夹不能删除,可能是因为换了maven库后有些文件和之前的不同,需要重新下载。而.gradle文件夹默认在C的的用户路径下,没有管理员权限删不掉。手动定位到文件夹删除后,重新运行项目就可以了。

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/1dd5cd48c7.html