java.lang.NoSuchMethodError при использовании Google ACRA - PullRequest
2 голосов
/ 08 января 2012

Я использую Google ACRA в своем приложении.

Недавно я получил следующую ошибку в мой файл отчета:

java.lang.NoSuchMethodError: 
    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.<init>(OpenSSLSocketImpl.java:213)
    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImplWrapper.<init>(OpenSSLSocketImplWrapper.java:35)
    at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl.createSocket(OpenSSLSocketFactoryImpl.java:92)
    at org.acra.util.FakeSocketFactory.createSocket(FakeSocketFactory.java:79)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:164)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    at org.acra.util.HttpRequest.sendPost(HttpRequest.java:109)
    at org.acra.util.HttpRequest.sendPost(HttpRequest.java:80)
    at org.acra.util.HttpUtils.doPost(HttpUtils.java:59)
    at org.acra.sender.GoogleFormSender.send(GoogleFormSender.java:62)
    at org.acra.ErrorReporter.sendCrashReport(ErrorReporter.java:850)
    at org.acra.ErrorReporter.checkAndSendReports(ErrorReporter.java:960)
    at org.acra.ErrorReporter$ReportsSenderWorker.run(ErrorReporter.java:142)

Ошибка возникает только на Nexus S под управлением Android 2.3.7. Я не могу сказать, всегда ли это одно и то же устройство.

Очевидно, что ошибка не в самом приложении, а в отчетах Google.

У кого-нибудь есть идеи, как это исправить?

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Вы запутываете? .. У меня были похожие проблемы, но я мог их исправить.

Если это так, попробуйте добавить эти строки в ваш proguard.cfg:

#ACRA specifics
# we need line numbers in our stack traces otherwise they are pretty useless
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable

# ACRA needs "annotations" so add this... 
-keepattributes *Annotation*

# keep this class so that logging will show 'ACRA' and not a obfuscated name like 'a'.
# Note: if you are removing log messages elsewhere in this file then this isn't necessary
-keep class org.acra.ACRA {
        *;
}

# keep this around for some enums that ACRA needs
-keep class org.acra.ReportingInteractionMode {
   *;
}

# keep this otherwise it is removed by ProGuard
-keep public class org.acra.ErrorReporter
{
public void addCustomData(java.lang.String,java.lang.String);
}

# keep this otherwise it is removed by ProGuard
-keep public class org.acra.ErrorReporter
{
public org.acra.ErrorReporter$ReportsSenderWorker handleSilentException(java.lang.Throwable);
}

Надеюсь, это поможет ...

0 голосов
/ 08 января 2012

Вы уверены, что ваш Nexus имеет все необходимые библиотеки?Вы уверены, что версия библиотек такая же, как в других телефонах или эмуляторе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...