2012-04-04 2 views
4

트위터에 올린 트위터와 통신하는 앱을 만들고 있습니다.Android Twitter4j 님이 오류를 넘깁니다. NoClassDefFoundError : twitter4j.TwitterFactory

다음
post.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Twitter twitter = new TwitterFactory().getInstance(); 
      AccessToken a = new AccessToken("****", "****"); 
      twitter.setOAuthConsumer("****", "****"); 
      twitter.setOAuthAccessToken(a); 
      try { 
       twitter.updateStatus("If you're reading this on Twitter, it worked!"); 
      } catch (TwitterException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

내가 내 로그 캣에있어 무엇 : 여기

NoClassDefFoundError: twitter4j.TwitterFactory 

가 OnClickListener를 통해 트윗이 게시물 코드입니다 : 내 문제는 내 코드를 컴파일 할 때, 나는 오류 메시지가 있다는 것입니다 :

04-04 10:27:51.330: E/AndroidRuntime(12547): FATAL EXCEPTION: main 
04-04 10:27:51.330: E/AndroidRuntime(12547): java.lang.NoClassDefFoundError: twitter4j.TwitterFactory 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.bintuu.updater.TwitterClass$3.onClick(TwitterClass.java:107) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.view.View.performClick(View.java:2485) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.view.View$PerformClick.run(View.java:9080) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Handler.handleCallback(Handler.java:587) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Handler.dispatchMessage(Handler.java:92) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.os.Looper.loop(Looper.java:130) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at android.app.ActivityThread.main(ActivityThread.java:3683) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at java.lang.reflect.Method.invoke(Method.java:507) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
04-04 10:27:51.330: E/AndroidRuntime(12547): at dalvik.system.NativeStart.main(Native Method) 
+0

classpath에 Twitter4j jar를 추가 했습니까? 참조 : http://www.vogella.de/articles/Eclipse/article.html#classpath_jar – elevine

+0

예. 더 적은 것, 나는 아직도 동일한 문제를 경험한다. 그 튜토리얼은 일반 Java를 대상으로합니다. 나는 안드로이드 자바를 사용하여. – AndroidDev

+0

Android 및 일반 Java 프로젝트와 동일한 단계입니다. – elevine

답변

2

지금 해결책을 찾았습니다. 문제는 내가 아주 오래된 버전의 Twitter4j를 사용하고 있었고, 내 libs 폴더에 동일한 이름의 여러 항아리가 있다는 것이 었습니다. 나는 이제 그 문제들을 고쳤으며, 이제는 완벽하게 작동하고있다.

1

프로젝트의 루트 디렉토리에 libs라는 폴더를 만들고 twitter4j jar를 안에 넣는다.

그런 다음 프로젝트 등록 정보 -> Java 빌드 경로 -> 라이브러리 -> Jars 추가를 통해 새 jar를 포함하십시오.

twitter4j jar에 대한 이전 참조를 제거하십시오.

청소하고 시작하십시오.

+0

이것은 여전히 ​​상황을 개선하는 데 도움이되지 않습니다. – AndroidDev

1

나는 twitter4j와 동일한 문제가있어서 해결했습니다. 간단히 폴더 이름을 "libs"로 지정한 다음, "libs"폴더를 소스 폴더로 사용하여 일부 메소드를 액세스 할 수있게했습니다. 나는 그 뒤에 실제 화학이 뭔지 궁금해! 하지만 그게 다야, 지금은 나를 위해 일하고있다. 원본 폴더로 만들려면 마우스 오른쪽 단추로 "빌드 경로"로 이동 한 다음 "원본 폴더로 사용"을 선택하기 만하면됩니다.

0

나는 너무 오래되었다는 것을 알고 있지만 나 같은 사람은 - 문제는 twitter4j 코어가 사용하기 때문에 log4j, slf4j 및 commons-logging jars를 프로젝트에 포함함으로써 해결되었습니다.

0

내가 Twitter4J를 잘못 가져온 것을 발견했습니다. 그래서 내가 한 일은 빌드 경로에서 제거한 다음 twitter4j-core-4.0.2.jar를 내 libs 폴더에 복사 한 다음 이클립스를 다시 시작하고 내 라이브러리의 jar 파일을 빌드 경로에 추가하는 것입니다. 그 후에 모든 것이 분류되었습니다.

관련 문제