如何解决更新到Kotlin 1.4后,Android Gradle构建失败dexBuilderDebug任务
我已经尝试将我的Android项目更新为Kotlin Aug 20 10:36:05 ERROR django.request: Internal Server Error: /code/projects/test-project/
Traceback (most recent call last):
File "/srv/hive/lib/python3.6/site-packages/urllib3/util/ssl_.py",line 353,in ssl_wrap_socket
context.load_verify_locations(ca_certs,ca_cert_dir,ca_cert_data)
FileNotFoundError: [Errno 2] No such file or directory
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/srv/hive/lib/python3.6/site-packages/urllib3/connectionpool.py",line 677,in urlopen
chunked=chunked,File "/srv/hive/lib/python3.6/site-packages/urllib3/connectionpool.py",line 381,in _make_request
self._validate_conn(conn)
File "/srv/hive/lib/python3.6/site-packages/urllib3/connectionpool.py",line 976,in _validate_conn
conn.connect()
File "/srv/hive/lib/python3.6/site-packages/urllib3/connection.py",line 370,in connect
ssl_context=context,File "/srv/hive/lib/python3.6/site-packages/urllib3/util/ssl_.py",line 355,in ssl_wrap_socket
raise SSLError(e)
urllib3.exceptions.SSLError: [Errno 2] No such file or directory
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/srv/hive/lib/python3.6/site-packages/django/core/handlers/exception.py",line 34,in inner
response = get_response(request)
File "/srv/hive/lib/python3.6/site-packages/django/core/handlers/base.py",line 115,in _get_response
response = self.process_exception_by_middleware(e,request)
File "/srv/hive/lib/python3.6/site-packages/django/core/handlers/base.py",line 113,in _get_response
response = wrapped_callback(request,*callback_args,**callback_kwargs)
File "/srv/hive/lib/python3.6/site-packages/django/contrib/auth/decorators.py",line 21,in _wrapped_view
return view_func(request,*args,**kwargs)
File "/srv/hive/src/hive/ide/views.py",line 67,in ide
utils.init_workspace(project)
File "/srv/hive/src/hive/ide/utils.py",line 252,in init_workspace
get_user_storage_resource(project.user).apply()
File "/srv/hive/src/hive/ide/utils.py",line 79,in apply
responses.append(item.apply())
File "/srv/hive/src/hive/ide/utils.py",line 221,in apply
if self.exists:
File "/srv/hive/src/hive/ide/utils.py",line 165,in exists
self._call('read')
File "/srv/hive/src/hive/ide/utils.py",line 152,in _call
return func(**kwargs)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/api/core_v1_api.py",line 18854,in read_namespaced_persistent_volume_claim
(data) = self.read_namespaced_persistent_volume_claim_with_http_info(name,namespace,**kwargs) # noqa: E501
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/api/core_v1_api.py",line 18945,in read_namespaced_persistent_volume_claim_with_http_info
collection_formats=collection_formats)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/api_client.py",line 345,in call_api
_preload_content,_request_timeout)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/api_client.py",line 176,in __call_api
_request_timeout=_request_timeout)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/api_client.py",line 366,in request
headers=headers)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/rest.py",line 241,in GET
query_params=query_params)
File "/srv/hive/lib/python3.6/site-packages/kubernetes/client/rest.py",line 214,in request
headers=headers)
File "/srv/hive/lib/python3.6/site-packages/urllib3/request.py",line 76,in request
method,url,fields=fields,headers=headers,**urlopen_kw
File "/srv/hive/lib/python3.6/site-packages/urllib3/request.py",line 97,in request_encode_url
return self.urlopen(method,**extra_kw)
File "/srv/hive/lib/python3.6/site-packages/urllib3/poolmanager.py",line 336,in urlopen
response = conn.urlopen(method,u.request_uri,**kw)
File "/srv/hive/lib/python3.6/site-packages/urllib3/connectionpool.py",line 765,in urlopen
**response_kw
File "/srv/hive/lib/python3.6/site-packages/urllib3/connectionpool.py",line 725,in urlopen
method,error=e,_pool=self,_stacktrace=sys.exc_info()[2]
File "/srv/hive/lib/python3.6/site-packages/urllib3/util/retry.py",line 439,in increment
raise MaxRetryError(_pool,error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='ide-ideresourcegroup-207977-dbdb0faf.hcp.centralus.azmk8s.io',port=443): Max retries exceeded with url: /api/v1/namespaces/ide/persistentvolumeclaims/workspace-storage-5p2lm91r (Caused by SSLError(FileNotFoundError(2,'No such file or directory'),))
,因为它现在正式稳定,并且在更新后遇到了问题。我不会在这里发布整个堆栈,因为它很长,但是它的mot顶部看起来像这样:
1.4.0
寻找原因,在堆栈下方,我发现了这一点:
...
> Task :app:transformClassesWithFirebasePerformancePluginForDebug
java.lang.ClassNotFoundException: javax.mail.internet.MimeBodyPart
> Task :app:mergeDebugJavaResource
> Task :app:dexBuilderDebug FAILED
org.gradle.workers.WorkerExecutionException: There was a failure while executing work items
...
这使我得出结论,即Firebase Performance库无法正确构建。我使用的是Firebase Performance版本...
Caused by: org.gradle.tooling.BuildException: Failed to process:
/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/0,/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/1,/bitrise/src/app/build/intermediates/transforms/FirebasePerformancePlugin/debug/2
...
和gradle classpath插件版本19.0.8
。我已经有一段时间没有更改它了,恢复到早期版本不能解决问题。在堆栈上注册的最后一个错误是:
1.3.1
我已经确定,删除Firebase Performance库并恢复为Kotlin Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:151)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:118)
at com.android.build.gradle.internal.dexing.DexWorkActionKt.process(DexWorkAction.kt:194)
... 33 more
Caused by: java.lang.IllegalStateException: Unexpected non-class file: META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class
可以解决问题,但是我想将它们都保留下来,以便将来用于项目,所以我正在寻找其他解决方案
我的1.3.71
文件:
build.gradle
以及完整的依赖项列表:
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
apply plugin: 'androidx.navigation.safeargs.kotlin'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.firebase.firebase-perf'
apply from: "dependencies.gradle"
apply from: "buildtypes.gradle"
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.example.app"
minSdkVersion 23
targetSdkVersion 29
versionCode 100
versionName "1.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
archivesBaseName = "$applicationId-$versionName-$versionCode"
}
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
buildFeatures {
dataBinding = true
}
}
为什么该构建失败?是Kotlin的 coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$versions.coreDesugaring"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "androidx.core:core:$versions.core"
implementation "androidx.core:core-ktx:$versions.core"
implementation "androidx.appcompat:appcompat:$versions.appCompat"
implementation "androidx.browser:browser:$versions.browser"
implementation "androidx.constraintlayout:constraintlayout:$versions.constraintLayout"
implementation "androidx.legacy:legacy-support-v4:$versions.legacy"
// UI
implementation "com.google.android.material:material:$versions.material"
implementation "com.appyvet:materialrangebar:$versions.materialRangeBar"
implementation "com.wdullaer:materialdatetimepicker:$versions.datetimepicker"
// Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:$versions.lifecycle"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.lifecycle"
// Navigation component
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
implementation "androidx.navigation:navigation-ui-ktx:$navigation_version"
// Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutines"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutines"
// Koin
implementation "org.koin:koin-android:$versions.koin"
implementation "org.koin:koin-androidx-ext:$versions.koin"
implementation "org.koin:koin-androidx-scope:$versions.koin"
implementation "org.koin:koin-androidx-viewmodel:$versions.koin"
// Work Manager
implementation "androidx.work:work-runtime:$versions.work"
implementation "androidx.work:work-runtime-ktx:$versions.work"
// Flipper
debugImplementation "com.facebook.soloader:soloader:$versions.soloader"
debugImplementation "com.facebook.flipper:flipper-network-plugin:$versions.flipper"
debugImplementation "com.kgurgul.flipper:flipper-realm-android:$versions.flipperRealm"
debugImplementation "com.facebook.flipper:flipper:$versions.flipper"
releaseImplementation "com.facebook.flipper:flipper-noop:$versions.flipper"
// Location & Maps
implementation "com.google.android.gms:play-services-maps:$versions.playLocation"
implementation "com.google.android.gms:play-services-location:$versions.playLocation"
implementation "com.google.maps.android:android-maps-utils:$versions.mapUtils"
// Logging
implementation "com.jakewharton.timber:timber:$versions.timber"
implementation "org.slf4j:slf4j-api:$versions.slf4j"
implementation "com.github.tony19:logback-android:$versions.logback"
// Databases
implementation "com.github.sevar83:android-spatialite:$versions.spatialite"
// Archives
implementation "org.zeroturnaround:zt-zip:$versions.ztZip"
// Dialogs
implementation "com.afollestad.material-dialogs:core:$versions.materialDialogs"
implementation "com.afollestad.material-dialogs:datetime:$versions.materialDialogs"
implementation "com.afollestad.material-dialogs:lifecycle:$versions.materialDialogs"
// Permissions
implementation "com.karumi:dexter:$versions.dexter"
implementation("dev.doubledot.doki:library:$versions.doki") {
transitive = true
}
// JSON
implementation "com.squareup.moshi:moshi:$versions.moshi"
implementation "com.squareup.moshi:moshi-kotlin:$versions.moshi"
// Firebase
implementation "com.google.firebase:firebase-analytics:$firebase_versions.analytics"
implementation "com.google.firebase:firebase-crashlytics:$firebase_versions.crashlytics"
implementation "com.google.firebase:firebase-perf:$firebase_versions.performance"
// Payments
implementation "com.android.billingclient:billing:$versions.billing"
implementation "com.android.billingclient:billing-ktx:$versions.billing"
// Testing
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
testImplementation "junit:junit:$test_version.junit"
testImplementation "androidx.test:core:$test_version.androidTest"
testImplementation "androidx.test:runner:$test_version.androidTest"
错误,还是依赖项有问题?是否可以解决此问题而无需恢复到以前的Kotlin版本?
解决方法
这似乎是一个AGP问题,将在4.1.0版中解决。更多详细信息在这里-my previous thread
一种解决方法是建议应用4.1.0-rc02 更新
classpath 'com.android.tools.build:gradle:4.1.0-rc02'
,
这不是最佳解决方案,但至少对我而言,它有效: 如果您是使用Gradle包装器从命令行构建的,则:
WCHAR*
如果您从Android Studio运行项目:
然后,您可以使用Kotlin 1.4运行项目,直到他们解决该问题为止。
副作用是,构建时间似乎有所缩短。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。