1

My app crashes when I use use a menu button to switch to a new page and call a new Activity. I have followed the tutorial from the android developer site which shows how to link button clicks to a new activity but when I click a button object the app crashes without changing to the new activity.

I have six different activities linking from the main activity.

My log cat is as follows:

03-05 20:12:10.185: W/ActivityManager(288): Activity pause timeout for ActivityRecord{40d31ab0 u0 com.example.g00290342bvarley/.MainActivity}
03-05 20:12:10.394: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property
03-05 20:12:10.954: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property
03-05 20:12:11.065: W/EGL_emulation(863): eglSurfaceAttrib not implemented
03-05 20:12:11.474: I/QSB.SuggestionsProviderImpl(863): chars:0,corpora:[web, apps, com.android.contacts/.activities.PeopleActivity]
03-05 20:12:11.604: E/SurfaceFlinger(36): ro.sf.lcd_density must be defined as a build property
03-05 20:12:11.744: W/EGL_emulation(449): eglSurfaceAttrib not implemented
03-05 20:12:12.815: I/Choreographer(288): Skipped 32 frames!  The application may be doing too much work on its main thread.
03-05 20:12:13.114: D/dalvikvm(863): GC_CONCURRENT freed 398K, 13% free 3825K/4348K, paused 11ms+154ms, total 867ms
03-05 20:12:15.115: I/Process(1467): Sending signal. PID: 1467 SIG: 9
03-05 20:12:15.285: I/WindowState(288): WIN DEATH: Window{40dbdb70 u0 com.example.g00290342bvarley/com.example.g00290342bvarley.MainActivity}
03-05 20:12:15.297: I/ActivityManager(288): Process com.example.g00290342bvarley (pid 1467) has died.
03-05 20:12:15.455: W/InputMethodManagerService(288): Got RemoteException sending setActive(false) notification to pid 1467 uid 10048
03-05 20:12:36.119: D/ExchangeService(688): Received deviceId from Email app: null
03-05 20:12:36.119: D/ExchangeService(688): !!! deviceId unknown; stopping self and retrying
03-05 20:12:41.254: D/ExchangeService(688): !!! EAS ExchangeService, onCreate
03-05 20:12:41.264: D/ExchangeService(688): !!! EAS ExchangeService, onStartCommand, startingUp = false, running = false
03-05 20:12:41.284: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
03-05 20:12:41.294: D/ExchangeService(688): !!! Email application not found; stopping self
03-05 20:12:41.304: D/ExchangeService(688): !!! EAS ExchangeService, onStartCommand, startingUp = true, running = false
03-05 20:12:41.334: W/ActivityManager(288): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
03-05 20:12:41.354: E/ActivityThread(688): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d06b20 that was originally bound here

MainActivity where button methods located:

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    //methods for button clicks

    public void aboutMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, AboutGmit.class);
        EditText editText = (EditText) findViewById(R.id.about);
        startActivity(intent);

    }

    public void mapMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, MapGmit.class);
        EditText editText = (EditText) findViewById(R.id.map);
        startActivity(intent);
    }

    public void courseMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, CourseInfo.class);
        EditText editText = (EditText) findViewById(R.id.courseInfo);
        startActivity(intent);
    }

    public void lifeMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, StudentLife.class);
        EditText editText = (EditText) findViewById(R.id.studLife);
        startActivity(intent);
    }


    public void portalMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, StudentPortal.class);
        EditText editText = (EditText) findViewById(R.id.studPortal);
        startActivity(intent);
    }

    public void contactMeth(View view) {
        // Do something in response to button
        Intent intent = new Intent(this, ContactInfo.class);
        EditText editText = (EditText) findViewById(R.id.contact);
        startActivity(intent);
    }

}

The new activity called ContactInfo.java

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class ContactInfo extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact_info);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.contact_info, menu);
        return true;
    }

}

The manifest file where I have added the activity element.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.g00290342bvarley"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.g00290342bvarley.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.AboutGmit"
            android:label="@string/title_activity_about_gmit" 
             android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.MapGmit"
            android:label="@string/title_activity_map_gmit"
             android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.CourseInfo"
            android:label="@string/title_activity_course_info" 
             android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.StudentLife"
            android:label="@string/title_activity_student_life" 
             android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.StudentPortal"
            android:label="@string/title_activity_student_portal" 
            android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.g00290342bvarley.MainActivity" />
        </activity>
        <activity
            android:name="com.example.g00290342bvarley.ContactInfo"
            android:label="@string/title_activity_contact_info" 
             android:parentActivityName="com.example.g00290342bvarley.MainActivity"
            >
        </activity>
    </application>

</manifest>

Button layout in activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout2"
    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=".MainActivity" >

    <Button
        android:id="@+id/about"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="aboutMeth"
        android:hint="Details about GMIT"
        android:text="@string/about" />

    <Button
        android:id="@+id/map"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="95dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="mapMeth"
        android:hint="Location of GMIT on google maps"
        android:text="@string/map" />

    <Button
        android:id="@+id/courseInfo"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="courseMeth"
        android:hint="Info about courses offered by GMIT"
        android:text="@string/courseInfo" />

    <Button
        android:id="@+id/studLife"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="98dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:hint="Gallery"
        android:onClick="lifeMeth"
        android:text="@string/studLife" />

    <Button
        android:id="@+id/studPortal"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="93dp"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="portalMeth"
        android:hint="The Student Portal!"
        android:text="@string/studPortal" />

    <Button
        android:id="@+id/contact"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:onClick="contactMeth"
        android:hint="GMIT contact info"
        android:text="@string/contact" />

</LinearLayout>
Brian Var
  • 6,029
  • 25
  • 114
  • 212
  • 1
    You've included the wrong part of logcat. Please post the stack trace for the exception instead. – Simon Mar 05 '13 at 20:30

3 Answers3

1

The <activity> element belongs in your AndroidManifest.xml file, not in your layout files.

You need to add all 6 activities to your AndroidManifest.xml file.

Tyler MacDonell
  • 2,609
  • 18
  • 27
  • I have added the activities to the manifest file,which is posted above but it is still crashing,any idea? – Brian Var Mar 05 '13 at 20:50
  • you should read http://stackoverflow.com/questions/11444622/activity-idle-timeout-for-activityrecord and try to figure out what is wrong in your case. – Hoan Nguyen Mar 05 '13 at 21:12
1

this

 <activity
    android:name="com.example.g00290342bvarley.ContactInfo"
    android:label="@string/title_activity_contact_info"
    android:parentActivityName="com.example.g00290342bvarley.MainActivity" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value="com.example.g00290342bvarley.MainActivity" />
</activity>

goes in the Manifest, not in the XML of your activity!

Lisa Anne
  • 4,482
  • 17
  • 83
  • 157
1

I might be missing something but I give a try . In each of your onClick methods you 're trying to get an editText.

EditText editText = (EditText) findViewById(R.id.contact);

But there is no editText declared in your layout, so it turns into NullPointerException. Try to remove this line . Hope it ll help

HoodVinci
  • 656
  • 5
  • 7
  • If I romove this how is the button going to link to the id? – Brian Var Mar 06 '13 at 12:49
  • I was referencing an edit text element when it was a button being used so I replaced this and it worked,but regarding you answer removing it would not help but you were correct in saying there was an error in the line of code,so I'm going to accept this :) – Brian Var Mar 06 '13 at 13:02