Как разрешить предупреждение D8: D8: Тип "org.conscrypt.Conscrypt" не найден

/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()'

Ответ 1

Я смог решить проблему с добавлением:

-dontwarn okhttp3.internal.platform.ConscryptPlatform

в файл proguard-rules.pro.

Ответ 2

Согласно https://github.com/square/okhttp/issues/3922, безопасно игнорировать эти предупреждения.

Если сборка не удалась, я полагаю, что есть еще одна проблема.

Ответ 3

Я думаю, что это источник моей проблемы, никакие изображения не отображаются в моем проекте. Я еще ничего не нашел. Я сообщу тебе, если найду это.

Ответ 4

Возможно 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

Ответ 5

Из ./gradlew собрать

R8 - это новая программа для сжатия кода Android. Если у вас возникли какие-либо проблемы, отправьте сообщение об ошибке на https://issuetracker.google.com, используя в качестве имени компонента "Shrinker (R8)". Вы можете отключить R8, обновив gradle.properties с помощью 'android.enableR8 = false'. Текущая версия: 1.4.94 (сборка 390954928f0db9c3b888a367f7f128ce3bbfb160 от go/r8bot (luci-r8-ci-archive-0-5g74)).