okhttp-3.10.0 build错误:Type `org.conscrypt.Conscrypt` was not found, it is required for default

错误信息:
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()`
Message{kind=WARNING, text=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()`, sources=[/Users/xxx/build/intermediates/transforms/proguard/xx/debug/0.jar], tool name=Optional.of(D8)}

这里写图片描述
看到这个错误后, 就找到源码类查看,注意类最前面的一句注释:

import java.security.NoSuchAlgorithmException;
import java.security.Provider;
import java.util.List;
import javax.annotation.Nullable;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.X509TrustManager;
import okhttp3.Protocol;
import org.conscrypt.Conscrypt;
import org.conscrypt.OpenSSLProvider;

/**
 * Platform using Conscrypt (conscrypt.org) if installed as the first Security Provider.
 *
 * Requires org.conscrypt:conscrypt-openjdk-uber on the classpath.
 */

后面接着找到了插件库的下载地址org.conscrypt:conscrypt-openjdk-uber
这里写图片描述
所以咱们只要导入库即可
implementation 'org.conscrypt:conscrypt-openjdk-uber:1.1.3'

proguard-rules.pro 混淆配置

#org.conscrypt
-dontwarn org.conscrypt.**
-keep class org.conscrypt.** { *; }
-keep interface org.conscrypt.** { *; }
追加一句 后面 build发现 org.conscrypt包中的Platform类引用了sun包 import sun.security.x509.AlgorithmId;
   /**
     * OID to Algorithm Name mapping.
     */
    @SuppressWarnings("unused")
    static String oidToAlgorithmName(String oid) {
        try {
            return AlgorithmId.get(oid).getName();
        } catch (NoSuchAlgorithmException e) {
            return oid;
        }
    }
Type sun.security.x509.AlgorithmId was not found, it is required for default or static interface methods desugaring of java.lang.String org.conscrypt.Platform.oidToAlgorithmName(java.lang.String)
所以这个错误可忽略,不影响 build 运行与打包

猜你喜欢

转载自blog.csdn.net/u012982629/article/details/80865268
今日推荐