JTwitter를 Android 애플리케이션에 통합하려고 시도하고 있으며 이전 Android 버전에 대한 회귀 테스트를 수행 할 때까지 완전히 성공했습니다. 안드로이드 2.X에서 내 코드는 잘 작동하지만, 안드로이드 1.5/1.6 달빅은 다음 줄에 VerifyError를 던졌습니다 :이 로그 캣 출력 및 스택 추적Android에서 JTwitter VerifyError 2.0 이전 버전
OAuthSignpostClient oauthClient
= new OAuthSignpostClient(KEY_TWITTER, SECRET_TWITTER, "oob");
및 제공 :
Could not find method javax.swing.JOptionPane.showInputDialog, referenced from method winterwell.jtwitter.OAuthSignpostClient.askUser
VFY: unable to resolve static method 1703: Ljavax/swing/JOptionPane;.showInputDialog (Ljava/lang/Object;)Ljava/lang/String;
VFY: rejecting opcode 0x71 at 0x0000
VFY: rejected Lwinterwell/jtwitter/OAuthSignpostClient;.askUser (Ljava/lang/String;)Ljava/lang/String;
Verifier rejected class Lwinterwell/jtwitter/OAuthSignpostClient;
Shutting down VM
threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: winterwell.jtwitter.OAuthSignpostClient
at com.wirelessdesigns.android.AuthActivity.onCreate(AuthActivity.java:37)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.access$2100(ActivityThread.java:116)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4203)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
at dalvik.system.NativeStart.main(Native Method)
나 '를 이 문제에 영향을 줄 수있는 Android 버전과 해결 방법은 기본 구현에서 변경되었을 수있는 것을 파악하려고합니다. A similar question은 잠시 뒤로 대답했지만 답변은 현재 포럼 게시물에 대한 죽은 링크의 형태로 진행되었습니다.
의견이 있으십니까?
분명히 OAuthSignpostClient는 레벨 5 이상에서 도입 된 API를 사용하여 구현됩니다. JTwitter.jar에서 OAuthSignpostClient.java를 추출하여 정확히 무엇인지 찾아 낼 수 있어야합니다. 지금 당장 시도했지만 JDK가 손상된 것으로 보입니다. –
예외 바로 위에 logcat에 나타나는 내용을 게시 할 수 있습니까? 문제가있는 곳을 정확히 알려주는 "VFY"가있는 몇 줄이어야합니다 (아마도 어설픈 방식으로). 확인 프로그램은 2.0 이상에서 다르게 작동합니다. 2.0 이전 버전에서는 오류가 발생하면 클래스를 즉시 거부하고 2.0 이상에서는 경고를 기록하고 코드가 실행될 때 실행되는 "항상 throw"명령어를 삽입합니다. 추가 정보 : http://android.git.kernel.org/?p=platform/dalvik.git;a=blob_plain;f=docs/verifier.html;hb=HEAD. – fadden
지연으로 인해 죄송합니다.이 문제를 해결하기위한 해결 방법을 수행했지만 결국이 작업을 수행 한 이유와 더 나은 해결 방법이 있는지 계속 관심을 갖습니다. 게시물의 스택 추적을 업데이트하여 직전의 logcat 출력을 포함 시켰습니다. 그것은 Swing 클래스 (안드로이드는 분명히 가지고 있지 않음)에 대한 참조를 찾고 있지만 askUser() 메소드를 호출하지 않았습니다! – Devunwired