我尝试将项目迁移到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一起运行以获得完整的见解。
获得更多帮助
如何解决multidex
和Maven
的问题?
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'。
握手过程中的远程主机关闭连接
答案 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
返回,应用程序再次运行。