Twitter4J
アプリでライブラリを使用しています。twitter
フィードを取得し、それらをlistview
. statuses.size()
量を取得するために使用すると、成功し、20 個のフィードが印刷されます。しかし、データを設定したい場合は、listview
強制終了します。
public class MainActivity extends Activity {
List<Status> statuses = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView i = (ListView) findViewById(R.id.listView1);
final ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("xxxxxxx")
.setOAuthConsumerSecret("xxxxxxxx")
.setOAuthAccessToken("xxxxxxxx")
.setOAuthAccessTokenSecret("xxxxxxxxxx");
new Thread(new Runnable() {
@Override
public void run() {
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
String user;
user = "xxxxxxx";
statuses = twitter.getUserTimeline(user);
Log.i("Status Count", statuses.size() + " Feeds");
statuses.toArray();
} catch (TwitterException te) {
te.printStackTrace();
}
}
}).start();
}
}
アプリが動作するようになり、Alayout
が空白に表示されます (データを に挿入しなかったため、.sizeが機能したlistview
ことを意味します)。11-10 14:53:46.269: I/Status Count(16935): 20 Feeds
i.setAdapter(new ArrayAdapter<Status>(MainActivity.this,
android.R.layout.simple_list_item_1, statuses));
しかし、これを追加する}).start();
と、エラーは発生しませんがeclipse
、電話でアプリが強制的に閉じられます。
logcat
:_
11-10 14:55:39.749: E/AndroidRuntime(18153): FATAL EXCEPTION: main
11-10 14:55:39.749: E/AndroidRuntime(18153): java.lang.RuntimeException: Unable to start activity ComponentInfo{xxxxxxxxx/xxxxxxxx.MainActivity}: java.lang.NullPointerException
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2358)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread.access$600(ActivityThread.java:153)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.os.Handler.dispatchMessage(Handler.java:99)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.os.Looper.loop(Looper.java:137)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread.main(ActivityThread.java:5227)
11-10 14:55:39.749: E/AndroidRuntime(18153): at java.lang.reflect.Method.invokeNative(Native Method)
11-10 14:55:39.749: E/AndroidRuntime(18153): at java.lang.reflect.Method.invoke(Method.java:511)
11-10 14:55:39.749: E/AndroidRuntime(18153): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
11-10 14:55:39.749: E/AndroidRuntime(18153): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
11-10 14:55:39.749: E/AndroidRuntime(18153): at dalvik.system.NativeStart.main(Native Method)
11-10 14:55:39.749: E/AndroidRuntime(18153): Caused by: java.lang.NullPointerException
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.widget.ArrayAdapter.getCount(ArrayAdapter.java:330)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.widget.ListView.setAdapter(ListView.java:462)
11-10 14:55:39.749: E/AndroidRuntime(18153): at xxxxxxxxxx.MainActivity.onCreate(MainActivity.java:63)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.Activity.performCreate(Activity.java:5104)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
11-10 14:55:39.749: E/AndroidRuntime(18153): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2262)
11-10 14:55:39.749: E/AndroidRuntime(18153): ... 11 more