AndroidX。无法确定androidx.multidex:multidex:2.0.0

时间:2019-06-28 12:33:02

标签: maven androidx

我尝试将项目迁移到AndroidX。

迁移3分钟后,出现错误:

  

Gradle导入   错误C:\ Users \ user \ AndroidStudioProjects \ project \ app \ build.gradle 项目   ':app':无法建立Kotlin项目配置详细信息:   org.gradle.api.artifacts.ResolveException:无法解决所有问题   配置依赖   ':app:implementationDependenciesMetadata'。由以下原因引起:   org.gradle.internal.resolve.ArtifactResolveException:无法   确定androidx.room:room-runtime:2.0.0的工件   创建人:org.gradle.api.resources.ResourceException:无法获取资源   'https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.0.0/room-runtime-2.0.0.aar'。引起   创建人:org.gradle.internal.resource.transport.http.HttpRequestException:   无法HEAD   'https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.0.0/room-runtime-2.0.0.aar'。引起   创建人:javax.net.ssl.SSLHandshakeException:远程主机关闭连接   握手期间导致的原因:java.io.EOFException:SSL对等体关闭   错误地向下

     

失败:构建失败,并出现异常。

     

出了什么问题:

     

无法解析配置':app:debugRuntimeClasspath'的所有依赖项。

     

无法确定   androidx.multidex:multidex:2.0.0的工件

     

无法获取资源'https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.0/multidex-2.0.0.aar'。

     

无法HEAD'https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.0/multidex-2.0.0.aar'。

     

握手期间远程主机关闭的连接SSL对等端错误地关闭

     

尝试:

     

使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。与--scan一起运行以获得完整的见解。

     

https://help.gradle.org

获得更多帮助

如何解决multidexMaven的问题?

build.gradle(项目):

buildscript {
    ext.compile_sdk_version = 29
    ext.min_sdk_version = 16
    ext.target_sdk_version = 29
    ext.kotlin_version = '1.3.40'
    ext.supportLibraryVersion = "28.0.0"

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // Firebase.
        classpath 'com.google.gms:google-services:4.2.0'

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

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(应用程序):

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    signingConfigs {
        ...
    }
    compileSdkVersion compile_sdk_version
    defaultConfig {
        minSdkVersion min_sdk_version
        targetSdkVersion target_sdk_version
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        debug {
            applicationIdSuffix '.debug'
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            multiDexEnabled true
        }
        release {
            debuggable false
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            // Adds the "release" signing configuration to the release build type.
            signingConfig signingConfigs.release
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    ...
    implementation 'androidx.multidex:multidex:2.0.0'
}

更新

我更新了所有依赖库。然后在项目的build.gradle中添加

maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }

到两个分支中的repositories。编译后我得到了:

  

出了什么问题:无法确定任务':app:kaptDebugKotlin'的依赖性。

     

无法解决配置':app:kapt'的所有任务依赖项。

     

无法解析androidx.room:room-compiler:2.1.0。

     

要求者:

     

项目:app

     

无法解析androidx.room:room-compiler:2.1.0。

     

无法获取资源'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'。

     

无法获取'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'。

     

握手过程中的远程主机关闭连接

     

无法解析androidx.room:room-compiler:2.1.0。

     

无法获取资源'https://maven.google.com/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'。

     

无法获取'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'。

     

握手过程中的远程主机关闭连接

1 个答案:

答案 0 :(得分:0)

我在build.gradle(项目)中添加了以下几行:

maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }

因此,它看起来像:

buildscript {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
        maven { url "https://maven.google.com" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.40"

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

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
        maven { url "https://maven.google.com" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

然后同步gradle文件。它从Maven下载了一些库。编译后出现另一个错误。然后,我再次按下Sync Project with Gradle files

另请参阅https://developer.android.com/jetpack/androidx/migrate,以了解什么库和样式在AndroidX中变成了什么。

奇怪,但是在编译并删除

之后
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }

build.gradle返回,应用程序再次运行。