2011-10-05 4 views
0

Android 용 reddit 리더 reddit-is-fun을 컴파일하려고했습니다. ADT (디버그 또는 단순히 실행)로 응용 프로그램을 시작하면 내 휴대 전화 (HTC Desire)에서 제대로 실행되고 실행됩니다. 그러나 서명 된 zipalign 패키지를 내 보내서 설치하면 작동하지 않습니다. 로그캣에 Jackson에 대한 NoSuchMethodError 예외가 표시됩니다. 저장소에있는 두 개의 jar이며 빌드 경로에 추가됩니다. 저는 두 사람이 같은 버전을 가지고 있고 더 새로운 버전으로 바 꾸었습니다.서명 된 apk를 내보낼 때 NoSuchMethodError

jar 라이브러리 사용에 익숙하지 않습니다. 정적 라이브러리처럼 결과 apk에 "링크"되어 있습니까? C++를 컴파일 할 때 실행 파일에 링크되어 있습니까? 장치의 응용 프로그램이 컴파일에 사용 된 것과 동일한 버전을로드하는지 어떻게 확인할 수 있습니까? (가장 가능성이있는 문제).

답변

1

Proguard 난독 화가 들리는 것처럼 들리 네요. Proguard를 사용하지 않도록 설정하거나 (허용 목록에 Jackson을 proguard.cfg에 추가하십시오)

+0

예, 분명히 난독 화입니다. 전체 라이브러리를 허용하려면 어떻게해야합니까? 문제는 호출이 난독 화되지만 라이브러리 자체가 아니라는 것입니다 (찾을 수없는 메소드의 이름이 a.c.f.d와 같기 때문에 이것을 생각하고 있습니다). –

+0

'-keep class org.codehaus.jackson. *'의 행을 따라'proguard.cfg'에 줄을 추가하고 싶을 것입니다. – Dave

+0

불행히도 작동하지 않는 것 같습니다. –

0

JAR이 JVM 형식에서 Dalvik VM 형식으로 올바르게 변환되지 않는다고 생각합니다. 아시다시피 안드로이드는 일반적인 데스크탑 JVM과 다른 바이트 코드를 사용합니다. JAR을 JVM 바이트 코드에서 Dalvik의 바이트 코드로 변환해야합니다. Google에 "Dalvik으로 JVM 변환"을 시도하십시오.

관련 문제