Android Twitter4j giving error NoClassDefFoundError: twitter4j.TwitterFactory

故事扮演 提交于 2019-11-29 15:19:33

问题


I am making an app that communicates with Twitter to post a tweet. My problem is that when compile my code, I get the error message:

NoClassDefFoundError: twitter4j.TwitterFactory

Here is the code that post's the tweet via an onClickListener:

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();
            }   
        }
    });

Here is what I got in my logcat:

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)

回答1:


try renaming the "lib" folder name to "libs". That solved a similar issue for me, check here: https://github.com/ddewaele/AndroidTwitterSample/issues/2




回答2:


I've found the solution now. The problem was that I was using a very old version of Twitter4j, and in my libs folder, there were multiple jars with identical names. I have now fixed those problems and it is now working perfectly.




回答3:


Create a folder named libs inside the root directory of your project and put twitter4j jar inside.

Then include new jar via Project Properties -> Java Build Path -> Libraries -> Add Jars.

Remove any old reference to twitter4j jars.

Clean and launch.




回答4:


I had the same problem with twitter4j, and I solved it. Simply after naming the folder to "libs", then I made the "libs" folder to be used as the source folder so as some methods within can be accessed. I wonder what is the actual chemistry behind it!! but that's it, it is now working for me. To make it a source folder, you simply right click it, go to the "build path" and then select "Use as source folder".




回答5:


I know it's too old but for those like me - the problem was solved by including log4j, slf4j and commons-logging jars in the project since twitter4j core uses them.




回答6:


I found that I Imported Twitter4J the incorrect way. So what I proceeded to do was remove it from my build path then copy twitter4j-core-4.0.2.jar to my libs folder then restart eclipse and add the jar in my libs to my build path. All was sorted thereafter.



来源:https://stackoverflow.com/questions/10004123/android-twitter4j-giving-error-noclassdeffounderror-twitter4j-twitterfactory

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!