Note that there are some explanatory texts on larger screens.

plurals
  1. POjava.lang.RuntimeException: Unable to start activity ComponentInfo
    primarykey
    data
    text
    <p>I'm trying to code a tweeter feed but i have an error for the compilation.</p> <p>I don't forget to add my activity into the manifest. </p> <p>Here is the activity code :</p> <pre><code>package fr.enstb.tp2; import java.net.URL; import java.util.ArrayList; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class TweetsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayList&lt;Tweet&gt; tweets = getTweets("android", 1); ListView listView = (ListView) findViewById(R.id.ListViewId); listView.setAdapter(new UserItemAdapter(this, R.layout.tweets_layout, tweets)); } public class UserItemAdapter extends ArrayAdapter&lt;Tweet&gt; { private ArrayList&lt;Tweet&gt; tweets; public UserItemAdapter(Context context, int textViewResourceId, ArrayList&lt;Tweet&gt; tweets) { super(context, textViewResourceId, tweets); this.tweets = tweets; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (v == null) { LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); v = vi.inflate(R.layout.tweets_layout, null); } Tweet tweet = tweets.get(position); if (tweet != null) { TextView username = (TextView) v.findViewById(R.id.username); TextView message = (TextView) v.findViewById(R.id.message); ImageView image = (ImageView) v.findViewById(R.id.avatar); if (username != null) { username.setText(tweet.username); } if(message != null) { message.setText(tweet.message); } if(image != null) { image.setImageBitmap(getBitmap(tweet.image_url)); } } return v; } } public Bitmap getBitmap(String bitmapUrl) { try { URL url = new URL(bitmapUrl); return BitmapFactory.decodeStream(url.openConnection() .getInputStream()); } catch(Exception ex) {return null;} } public ArrayList&lt;Tweet&gt; getTweets(String searchTerm, int page) { String searchUrl = "http://search.twitter.com/search.json?q=@" + searchTerm + "&amp;rpp=100&amp;page=" + page; ArrayList&lt;Tweet&gt; tweets = new ArrayList&lt;Tweet&gt;(); HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(searchUrl); ResponseHandler&lt;String&gt; responseHandler = new BasicResponseHandler(); String responseBody = null; try{ responseBody = client.execute(get, responseHandler); }catch(Exception ex) { ex.printStackTrace(); } JSONObject jsonObject = null; JSONParser parser=new JSONParser(); try { Object obj = parser.parse(responseBody); jsonObject=(JSONObject)obj; }catch(Exception ex){ Log.v("TEST","Exception: " + ex.getMessage()); } JSONArray arr = null; try { Object j = jsonObject.get("results"); arr = (JSONArray)j; }catch(Exception ex){ Log.v("TEST","Exception: " + ex.getMessage()); } for(Object t : arr) { Tweet tweet = new Tweet( ((JSONObject)t).get("from_user").toString(), ((JSONObject)t).get("text").toString(), ((JSONObject)t).get("profile_image_url").toString() ); tweets.add(tweet); } return tweets; } public class Tweet { public String username; public String message; public String image_url; public Tweet(String username, String message, String url) { this.username = username; this.message = message; this.image_url = url; } } } </code></pre> <p>And here is the log traces :</p> <pre><code>: E/AndroidRuntime(884): FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{fr.enstb.tp2/fr.enstb.tp2.TweetsActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) at android.app.ActivityThread.startActivityNow(ActivityThread.java:1796) at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135) at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347) at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:682) at android.widget.TabHost.setCurrentTab(TabHost.java:346) at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:150) at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:540) at android.view.View.performClick(View.java:3460) at android.view.View$PerformClick.run(View.java:13955) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4340) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NullPointerException at fr.enstb.tp2.TweetsActivity.getTweets(TweetsActivity.java:126) at fr.enstb.tp2.TweetsActivity.onCreate(TweetsActivity.java:36) at android.app.Activity.performCreate(Activity.java:4465) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919) ... 18 more </code></pre> <p>Thankk for your help !</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload