Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie
Android App Crashes On Startup
Options
-
06-09-2014 8:47pmHi everyone,
I've just started teaching myself Android development, and I've already hit a bit of a hurdle. I'm writing a simple shopping list app (following a tutorial really). Basically, I can make the app display the interface no problem, but as soon as I try to actually make it do anything in the activity code, the app simply stops launching.
Here's the Java, including everything generated by Eclipse:
(The problem is caused by the .setOnClickListener and .setChecked calls. When I comment those out, I can launch the app.)import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.ActionBarActivity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.EditText; import android.widget.TextView; public class ShoppingListActivity extends ActionBarActivity implements OnClickListener { EditText et1 = null; CheckBox cb1 = null; EditText et2 = null; CheckBox cb2 = null; EditText et3 = null; CheckBox cb3 = null; EditText et4 = null; CheckBox cb4 = null; EditText et5 = null; CheckBox cb5 = null; TextView tv = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping_list); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } et1 = (EditText) findViewById(R.id.item1); cb1 = (CheckBox) findViewById(R.id.check1); et2 = (EditText) findViewById(R.id.item2); cb2 = (CheckBox) findViewById(R.id.check2); et3 = (EditText) findViewById(R.id.item3); cb3 = (CheckBox) findViewById(R.id.check3); et4 = (EditText) findViewById(R.id.item4); cb4 = (CheckBox) findViewById(R.id.check4); et5 = (EditText) findViewById(R.id.item5); cb5 = (CheckBox) findViewById(R.id.check5); tv = (TextView) findViewById(R.id.done); cb1.setOnClickListener(this); cb2.setOnClickListener(this); cb3.setOnClickListener(this); cb4.setOnClickListener(this); cb5.setOnClickListener(this); cb1.setChecked(false); cb2.setChecked(false); cb3.setChecked(false); cb4.setChecked(false); cb5.setChecked(false); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.shopping_list, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View arg0) { // TODO Auto-generated method stub } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_shopping_list, container, false); return rootView; } } }
And the XML:<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.shoppinglist.MainActivity$PlaceholderFragment" > <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/item1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="250dp" android:paddingBottom="5dp" /> <CheckBox android:id="@+id/check1" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/item2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="250dp" android:paddingBottom="5dp" /> <CheckBox android:id="@+id/check2" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/item3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="250dp" android:paddingBottom="5dp" /> <CheckBox android:id="@+id/check3" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/item4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="250dp" android:paddingBottom="5dp" /> <CheckBox android:id="@+id/check4" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/item5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:minWidth="250dp" android:paddingBottom="5dp" /> <CheckBox android:id="@+id/check5" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <DigitalClock android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="20pt" /> </TableRow> <TableRow android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/done" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#ffffff" android:minWidth="250dp" android:paddingBottom="5dp" android:text="" android:textColor="#ff0000" android:textSize="20pt" > </TextView> </TableRow> </TableLayout>
The logcat output isn't helping me very much, but I think this is the relevant part:09-06 15:25:30.611: E/AndroidRuntime(3624): Caused by: java.lang.NullPointerException 09-06 15:25:30.611: E/AndroidRuntime(3624): at com.example.shoppinglist.ShoppingListActivity.onCreate(ShoppingListActivity.java:51) 09-06 15:25:30.611: E/AndroidRuntime(3624): at android.app.Activity.performCreate(Activity.java:5231) 09-06 15:25:30.611: E/AndroidRuntime(3624): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 09-06 15:25:30.611: E/AndroidRuntime(3624): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
If anyone can put me out of my misery here, I'd really appreciate it. I've been banging my head off this one for hours.0
Comments
-
I'm not an Android developer, but try removing the initialisation of your EditText and Checkbox variables to null. Doesn't seem necessary and I don't think it's correct.0
-
Setting them to null is a bit pointless, but it's not incorrect. I don't do Android either, but those findViewById calls must be failing. But which one? You don't do error checking?0
-
Thanks for the replies, I've got it sussed now.
In case anyone's wondering, I had my XML in a file called fragment_shopping_list rather than activity_shopping_list. Silly mistake really.
Rather than start a new thread, I might as well ask here - are there any really good Android development books that people would recommend? The one I'm working through at the moment is quite dated. (Makes no mention of fragments, for instance, and from what I've been reading, they're quite important.)0 -
This is a great book, I started with this mixed with some video tutorials and i was writing apps in no time. I started learning Android in February and now I'm working in app development, although I did have Java beforehand. It has a chapter on fragments that makes them very easy to understand IMO.
http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/ref=la_B001ITVV1E_1_1?s=books&ie=UTF8&qid=1410079012&sr=1-1
This is another one I went through, not as up to date covers slightly more ground with more detailed explanations. Both books are good to have as reference.
http://www.amazon.com/Professional-Android-4-Application-Development/dp/11181022740 -
I'd recommend CommonsWare for a straightforward and concise guide. The author often posts on StackOverflow too.0
-
Advertisement
-
Highly recommend the Android fundamentals course on Udacity - https://www.udacity.com/course/ud8530
-
Cheers for the recommendations, that gives me plenty to work with!0
Advertisement