Странная NoSuchMethodError с бредовым объяснением - PullRequest
2 голосов
/ 21 марта 2019

У меня есть следующий код в моем SDK:

public MatchDomainTrustManager(String domain) throws GeneralSecurityException, AssertionError {

        if (domain == null) throw new IllegalArgumentException("domain can not be null");

        this.domain = domain;

        TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        tmf.init((KeyStore) null); //This is where the error thrown

        defaultTrustManager = findX509TrustManager(tmf);
        if (defaultTrustManager == null) {
            throw new IllegalStateException("Couldn't find X509TrustManager");
        }

        List<X509Certificate> allIssuers = new ArrayList<>();
        for (X509Certificate cert : defaultTrustManager.getAcceptedIssuers()) {
            allIssuers.add(cert);
        }
        acceptedIssuers = allIssuers.toArray(new X509Certificate[allIssuers.size()]);
    }

В crashlytics я вижу следующую ошибку:

Fatal Exception: java.lang.NoSuchMethodError
No static method z}ey???Hٲ?e!Σt s;o?+??rʇ,Ԯڧ?^휜ƀ|ڞ?ߵEE?AU粴&}l3 㬻4?Ӊ*ϩH6<0ۙ '^$T܈ưdž♧??Ԉgʯ1%;/߻C!Q̨Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory; in class Ljavax/net/ssl/TrustManagerFactory; or its super classes (declaration of 'javax.net.ssl.TrustManagerFactory' appears in /system/framework/core-oj.jar)
com.tawkon.data.lib.ssl.MatchDomainTrustManager.<init> (MatchDomainTrustManager.java:39)
com.tawkon.data.lib.helper.ServerHelper.?͞rƹ?!w?#?X QB?Aퟶ?،̡ݽɗόt1R:鏡"Ѫ⡦EE摶Ƴ (ServerHelper.java:459)
com.tawkon.data.lib.helper.ServerHelper.getDataLibConfiguration (ServerHelper.java:88)
com.tawkon.data.lib.jobScheduler.jobService.RemoteConfigurationJobService$1.run (RemoteConfigurationJobService.java:44)
java.lang.Thread.run (Thread.java:764)

Как вы можете видеть, у меня есть эта странная ошибка,который я понятия не имею, откуда это взялось?Кто-нибудь имел дело с чем-то подобным раньше?

Характеристики устройства - телефон Samsung с ОС 8.

Это странное исключение, поскольку приложение работает на многих разных устройствах от OS 4 до OS 9, иЯ не могу думать ни по какой причине, что методы TrustManagerFactory будут отсутствовать, если это не какое-то пользовательское ПЗУ ОС.

...