2012-01-08 4 views
2

신청서에 Google ACRA를 사용합니다. 안드로이드 2.3.7을 실행하는 경우에만 넥서스 S에java.lang.NoSuchMethodError 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) 

오류가 발생합니다 :

최근 내 보고서 파일로 전송 다음과 같은 오류가 발생합니다. 나는 언제나 같은 장치인지 알 수 없다.

분명히 오류는 응용 프로그램 자체가 아니라 Google 보고서에서 발생합니다.

누구나 해결할 수있는 아이디어가 있습니까?

+0

당신은뿐만 아니라 ProGuard에서를 사용 했습니까? – Force

+0

ProGuard를 사용하지 않았습니다. –

답변

0

Nexus에 모든 라이브러리가 필요합니까? 라이브러리 버전이 다른 휴대 전화 또는 에뮬레이터와 동일합니까?

+0

아니요, 아닙니다. Google 보고서에이 오류가 표시되며 실제 기기에 액세스 할 수 없습니다. 내 응용 프로그램이 시장에 나와 있기 때문에 수백 명이 사용하지만 Nexus S에서만 오류가 발생하므로 하나의 장치인지 다른 Nexus S 장치인지 확실하지 않습니다. –

1

당신은 혼란 스럽습니까? ... 나는 비슷한 문제가 있었지만 해결할 수있었습니다.

그렇다면, 당신의 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); 
} 

희망하는 데 도움이 ...

관련 문제