twitter4j中的NullPointerException TwitterFactory.getInstance()

时间:2015-03-06 09:01:02

标签: nullpointerexception twitter4j

我正在尝试为OAuth获取一个Twitter对象,但它会返回以下异常。

更新代码如下。

  ConfigurationBuilder cb = new ConfigurationBuilder();
    Log.i(TAG, "configuration buildr initiated");
    cb.setDebugEnabled(true)
            .setOAuthConsumerKey(consumerKey)
            .setOAuthConsumerSecret(consumerSecretKey);
    Log.i(TAG, "consumer keys set");
    TwitterFactory tf = new TwitterFactory(cb.build());
    Log.i(TAG,"Twitter factory initiated");
    Twitter twitter = tf.getInstance();
    Log.i(TAG,"twiiter instance obtaines");
    try {
        RequestToken requestToken = twitter.getOAuthRequestToken();
    } catch (TwitterException e) {
        e.printStackTrace();
    }

这里抛出了NullPointerException,我无法弄清楚原因。代码有什么问题?

堆栈跟踪如下:

03-08 14:53:12.510: W/dalvikvm(21320): threadid=1: thread exiting with uncaught exception (group=0x4182dda0)
03-08 14:53:12.520: E/AndroidRuntime(21320): FATAL EXCEPTION: main
03-08 14:53:12.520: E/AndroidRuntime(21320): Process: org.ambientdynamix.core, PID: 21320
03-08 14:53:12.520: E/AndroidRuntime(21320): java.lang.NullPointerException
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.apache.felix.framework.BundleWiringImpl.doImplicitBootDelegation(BundleWiringImpl.java:1721)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1698)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1534)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.apache.felix.framework.BundleWiringImpl.getResourceByDelegation(BundleWiringImpl.java:1440)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.getResource(BundleWiringImpl.java:2458)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:430)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at java.lang.Class.getResourceAsStream(Class.java:1037)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at twitter4j.conf.PropertyConfiguration.<init>(PropertyConfiguration.java:129)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at twitter4j.conf.PropertyConfiguration.<init>(PropertyConfiguration.java:146)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at twitter4j.conf.ConfigurationBuilder.<init>(ConfigurationBuilder.java:31)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.ambientdynamix.contextplugins.ambientTwitter.ambientTwitterRuntime.getDefaultConfigurationView(ambientTwitterRuntime.java:80)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.ambientdynamix.core.DynamixService.doContextPluginConfigurationView(DynamixService.java:2382)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.ambientdynamix.core.DynamixService.openContextPluginConfigurationForFramework(DynamixService.java:2356)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at org.ambientdynamix.ui.adapters.InstalledPluginsListAdapter$4.onClick(InstalledPluginsListAdapter.java:212)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.view.View.performClick(View.java:4633)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.view.View$PerformClick.run(View.java:19330)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.os.Handler.handleCallback(Handler.java:733)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.os.Handler.dispatchMessage(Handler.java:95)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.os.Looper.loop(Looper.java:157)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at android.app.ActivityThread.main(ActivityThread.java:5356)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at java.lang.reflect.Method.invokeNative(Native Method)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at java.lang.reflect.Method.invoke(Method.java:515)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
03-08 14:53:12.520: E/AndroidRuntime(21320):    at dalvik.system.NativeStart.main(Native Method)
03-08 14:53:12.530: W/ActivityManager(815):   Force finishing activity org.ambientdynamix.core/org.ambientdynamix.ui.activities.HomeActivity
03-08 14:53:12.590: V/Permission(21320): createPermission for permissionString: Context.ACTIVITY_SERVICE

这与此链接中讨论的内容有关吗? ClassNotFoundException: twitter4j.conf.PropertyConfigurationFactory : Android

twitter4j.properties文件是否需要在那里才能使ConfigurationBuilder工作?在Android应用程序中,我应该把它放在哪里?

1 个答案:

答案 0 :(得分:1)

在第一次通话中,您必须通过Configuration,在接下来的后续通话中,您可以避开Configuration

因此,请使用twitter= new TwitterFactory(configuration).getInstance();