CoolMind
CoolMind

Reputation: 28835

AndroidX. Could not determine artifacts for androidx.multidex:multidex:2.0.0

I try to migrate a project to AndroidX.

After 3 minutes of migrating it finished with error:

Gradle import errorsC:\Users\user\AndroidStudioProjects\project\app\build.gradleproject ':app': Unable to build Kotlin project configurationDetails: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':app:implementationDependenciesMetadata'.Caused by: org.gradle.internal.resolve.ArtifactResolveException: Could not determine artifacts for androidx.room:room-runtime:2.0.0Caused by: org.gradle.api.resources.ResourceException: Could not get resource 'https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.0.0/room-runtime-2.0.0.aar'.Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'https://dl.google.com/dl/android/maven2/androidx/room/room-runtime/2.0.0/room-runtime-2.0.0.aar'.Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshakeCaused by: java.io.EOFException: SSL peer shut down incorrectly

FAILURE: Build failed with an exception.

What went wrong:

Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.

Could not determine artifacts for androidx.multidex:multidex:2.0.0

Could not get resource 'https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.0/multidex-2.0.0.aar'.

Could not HEAD 'https://dl.google.com/dl/android/maven2/androidx/multidex/multidex/2.0.0/multidex-2.0.0.aar'.

Remote host closed connection during handshake SSL peer shut down incorrectly

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

How to solve a problem with multidex and Maven?

build.gradle (project):

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 (app):

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'
}

UPDATE

I updated all libraries in dependencies. Then in project's build.gradle I added

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

to repositories in both branches. After compilation I got:

What went wrong: Could not determine the dependencies of task ':app:kaptDebugKotlin'.

Could not resolve all task dependencies for configuration ':app:kapt'.

Could not resolve androidx.room:room-compiler:2.1.0.

Required by:

project :app

Could not resolve androidx.room:room-compiler:2.1.0.

Could not get resource 'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'.

Could not GET 'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'.

Remote host closed connection during handshake

Could not resolve androidx.room:room-compiler:2.1.0.

Could not get resource 'https://maven.google.com/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'.

Could not GET 'https://dl.google.com/dl/android/maven2/androidx/room/room-compiler/2.1.0/room-compiler-2.1.0.pom'.

Remote host closed connection during handshake

Upvotes: 1

Views: 5553

Answers (1)

CoolMind
CoolMind

Reputation: 28835

I added in build.gradle (project) these lines:

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

So, it looks like:

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
}

Then synced gradle file. It downloaded some libraries from Maven. After compiling I got another error. Then I pressed Sync Project with Gradle files again.

See also https://developer.android.com/jetpack/androidx/migrate to understand what library and styles becomes what in AndroidX.

Strange, but after compiling and removing

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

back from build.gradle, the application run again.

Upvotes: 4

Related Questions