/Volumes/SSD/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.10.0/7ef0f1d95bf4c0b3ba30bbae25e0e562b05cf75e/okhttp-3.10.0.jar: D8: Type `org.conscrypt.Conscrypt` was not found, it is required for default or static interface methods desugaring of `okhttp3.internal.platform.Platform okhttp3.internal.platform.ConscryptPlatform.buildIfSupported()`
我能够通过添加来解决问题:
-dontwarn okhttp3.internal.platform.ConscryptPlatform
到proguard-rules.pro
文件。
根据https://github.com/square/okhttp/issues/3922的说法,忽略这些警告是安全的。
如果构建不成功,我想还有另一个问题。
可能https://github.com/square/okhttp/issues/4604会有所帮助,但我没有尝试。
buildscript {
...
repositories {
...
maven {
url 'http://storage.googleapis.com/r8-releases/raw'
}
}
dependencies {
classpath 'com.android.tools:r8:1.4.57' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:3.3.1' // You don't need to upgrade this to use a newer R8 version.
...
}
}
在我的情况下,我添加了OkHttp库,它是Proguard规则。然后删除了库但忘记删除规则。如果你从proguard-rules.pro
中删除了OkHttp,你可以从build.gradle
评论或删除这些行:
### OkHttp.
# JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.**
# A resource is loaded with a relative path so the package of this class must be preserved.
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.*
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform
来自./gradlew汇编
R8是新的Android代码缩小器。如果您遇到任何问题,请在https://issuetracker.google.com提交一个错误,使用'Shrinker(R8)'作为组件名称。您可以通过使用'android.enableR8 = false'更新gradle.properties来禁用R8。当前版本是:1.4.94(来自go / r8bot(luci-r8-ci-archive-0-5g74)的build 390954928f0db9c3b888a367f7f128ce3bbfb160)。