Faizan
Faizan

Reputation: 309

Android application crashes at startActivity()

Hello i'm new to android programming, this application crashes after the it encounters the startActivity() call, there are two buttons which have which when pressed launch new activities one of them works fine but by pressing the other the application crashes, i have defined them in the AndroidManifest.xml. I have commented the code which results in crash.

public class poetry extends Activity {
   public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.poetry);
       WindowManager wm = getWindowManager();
       Display d = wm.getDefaultDisplay();
       if(d.getWidth() > d.getHeight()){
           Log.d("Orientation", "Landscape");
       }else{
           Log.d("Orientation", "Potratit");
       }
   }
   //Results in crash
   public void onClickPersian(View v){
       startActivity(new Intent(poetry.this, persian.class));
   }
   //Runs Fine
   public void onClickUrdu(View v){
       startActivity(new Intent(poetry.this, urdu.class));
   }
}

Class Persian

public class persian extends Activity {
    public void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.persian);
       WindowManager w = getWindowManager();
       Display d = w.getDefaultDisplay();
       if(d.getWidth() > d.getHeight()){
           Log.d("Orientation", "Landscape");
       }else{
           Log.d("Orientation", "Potrait");
       }
    }
}

Persian.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/Persian"
            android:id="@+id/btnPersian"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="@android:dimen/app_icon_size"
            android:onClick="onClickPersian"

            />
    <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/Urdu"
            android:id="@+id/btnUrdu"
            android:layout_centerHorizontal="true"
            android:layout_below="@+id/btnPersian"
            android:layout_marginTop="25dp"
            android:onClick="onClickUrdu"
            />

</RelativeLayout>

AndroidManifest.xml file:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.ZindaRud"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="14"/>
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:theme="@android:style/Theme.Holo.Light">
        <activity android:name=".main"
                  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=".poetry"
                  android:label="@string/Poetry">
        </activity>
        <activity android:name=".prose"
                  android:label="@string/RRI">
        </activity>
        <activity android:name=".biography"
                  android:label="@string/Biography">
        </activity>
        <actvity android:name=".persian"
                 android:label="@string/persianPoetry">
        </actvity>
        <activity android:name="urdu"
                android:label="@string/urduPoetry">
        </activity>
        <activity android:name=".preface"
                  android:label="@string/Preface">
        </activity>

    </application>
</manifest>

The application crashes when the onClickPersian method is launched.

LogCat:

06-26 15:34:23.407      745-745/com.example.ZindaRud D/Orientation﹕ Potratit
06-26 15:34:24.967      745-745/com.example.ZindaRud D/AndroidRuntime﹕ Shutting down VM
06-26 15:34:24.967      745-745/com.example.ZindaRud W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x409961f8)
06-26 15:34:25.017      745-745/com.example.ZindaRud E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: Could not execute method of the activity
            at android.view.View$1.onClick(View.java:3039)
            at android.view.View.performClick(View.java:3480)
            at android.view.View$PerformClick.run(View.java:13983)
            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.reflect.InvocationTargetException
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3034)
            at android.view.View.performClick(View.java:3480)
            at android.view.View$PerformClick.run(View.java:13983)
            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: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ZindaRud/com.example.ZindaRud.persian}; have you declared this activity in your AndroidManifest.xml?
            at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1508)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
            at android.app.Activity.startActivityForResult(Activity.java:3190)
            at android.app.Activity.startActivity(Activity.java:3297)
            at com.example.ZindaRud.poetry.onClickPersian(poetry.java:28)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3034)
            at android.view.View.performClick(View.java:3480)
            at android.view.View$PerformClick.run(View.java:13983)
            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)

Upvotes: 0

Views: 220

Answers (4)

Faizan
Faizan

Reputation: 309

It was a simple typo that caused all this in the AndroidManifest.xml file, i had written actvity instead of activity.

Thanks to all those who tried to help.

Upvotes: 0

yazjisuhail
yazjisuhail

Reputation: 367

Can you please post a screenshot of your package explorer? You may have placed the Persian class in some other package.

Upvotes: 0

madteapot
madteapot

Reputation: 2284

Your logcat says

Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.ZindaRud/com.example.ZindaRud.persian}; have you declared this activity in your AndroidManifest.xml?

which means you have not declared the activity in the Manifest.xml file.

But from your Manifest file it seems you have declared it but not with the package name.

First of all close and open the IDE then clean and build the project again. If it still doesn't work try following and then again clean build the project. I would advise you if you are using eclipse then you should use Ctrl + Space when adding such properties so that it will suggest you available options. Now for your problem first try to remove all '.' from you <activity android:name="your_activity"> </activity> and if that doesn't work then try to put the activity name along with package in the Manifest.xml file which in your case is com.example.ZindaRud so just add com.example.ZindaRud.your_activity instead of just activity name.

Upvotes: 0

Zoran
Zoran

Reputation: 1494

Put

<activity android:name=".urdu"

instead of

<activity android:name="urdu"

in manifest. You missed "."

Upvotes: 2

Related Questions