-1

This project is throwing "IllegalStateException: Could not execute method for android:onClick" when switching to second activity.

I have embbed the main and second activity as well as error code. Any idea?

Cheers

MainActivity

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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


    }

    public void onBtnClicked(View v) {

        if (v.getId() == R.id.button4) {
            MessageBox("About This Game");
        }
        if (v.getId() == R.id.button5) {

            System.exit(0);
        }
        if (v.getId() == R.id.button3) {

            MessageBox("Visit Our Web Site to view TopPlayers");
        }
        if (v.getId() == R.id.button1) {
            Intent intent;
            intent = new Intent(this, Qrcode.class);
            startActivity(intent);
        }


    }
    public void MessageBox(String message) {
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
}

SecondActivity

import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class Qrcode extends Activity {
    /** Called when the activity is first created. */

    static final String ACTION_SCAN = "com.google.zxing.client.android.SCAN";

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

    public void scanBar(View v) {
        try {
            Intent intent = new Intent(ACTION_SCAN);
            intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
            startActivityForResult(intent, 0);
        } catch (ActivityNotFoundException anfe) {
            showDialog(Qrcode.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show();
        }
    }

    public void scanQR(View v) {
        try {
            Intent intent = new Intent(ACTION_SCAN);
            intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
            startActivityForResult(intent, 0);
        } catch (ActivityNotFoundException anfe) {
            showDialog(Qrcode.this, "No Scanner Found", "Download a scanner code activity?", "Yes", "No").show();
        }
    }

    private static AlertDialog showDialog(final Activity act, CharSequence title, CharSequence message, CharSequence buttonYes, CharSequence buttonNo) {
        AlertDialog.Builder downloadDialog = new AlertDialog.Builder(act);
        downloadDialog.setTitle(title);
        downloadDialog.setMessage(message);
        downloadDialog.setPositiveButton(buttonYes, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialogInterface, int i) {
                Uri uri = Uri.parse("market://search?q=pname:" + "com.google.zxing.client.android");
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                try {
                    act.startActivity(intent);
                } catch (ActivityNotFoundException anfe) {

                }
            }
        });
        downloadDialog.setNegativeButton(buttonNo, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialogInterface, int i) {
            }
        });
        return downloadDialog.show();
    }

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String contents = intent.getStringExtra("SCAN_RESULT");
                String format = intent.getStringExtra("SCAN_RESULT_FORMAT");

                Toast toast = Toast.makeText(this, "Content:" + contents + " Format:" + format, Toast.LENGTH_LONG);
                toast.show();
            }
        }
    }


}

error:

Process: com.example.sahan.project, PID: 4907
java.lang.IllegalStateException: Could not execute method for android:onClick
 at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275)
 at android.view.View.performClick(View.java:4780)
 at android.view.View$PerformClick.run(View.java:19866)
 at android.os.Handler.handleCallback(Handler.java:739)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:135)
 at android.app.ActivityThread.main(ActivityThread.java:5257)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.reflect.InvocationTargetException
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
 at android.view.View.performClick(View.java:4780)
 at android.view.View$PerformClick.run(View.java:19866)
 at android.os.Handler.handleCallback(Handler.java:739)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:135)
 at android.app.ActivityThread.main(ActivityThread.java:5257)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.sahan.project/com.example.sahan.project.Qrcode}; have you declared this activity in your AndroidManifest.xml?
 at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1777)
 at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501)
 at android.app.Activity.startActivityForResult(Activity.java:3745)
 at android.app.Activity.startActivityForResult(Activity.java:3706)
 at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:784)
 at android.app.Activity.startActivity(Activity.java:4016)
 at android.app.Activity.startActivity(Activity.java:3984)
 at com.example.sahan.project.MainActivity.onBtnClicked(MainActivity.java:36)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)
 at android.view.View.performClick(View.java:4780)
 at android.view.View$PerformClick.run(View.java:19866)
 at android.os.Handler.handleCallback(Handler.java:739)
 at android.os.Handler.dispatchMessage(Handler.java:95)
 at android.os.Looper.loop(Looper.java:135)
 at android.app.ActivityThread.main(ActivityThread.java:5257)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
12-21 22:32:10.708 4907-4907/com.example.sahan.project I/Process: Sending signal. PID: 4907 SIG: 9
Dhaval Patel
  • 10,119
  • 5
  • 43
  • 46
Six80
  • 677
  • 1
  • 9
  • 17

3 Answers3

1

Add this Activity class to your manifest file

 <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
      <activity
        android:name=".Qrcode"/>
curiousMind
  • 2,812
  • 1
  • 17
  • 38
0

In your manifest - add activity .Qrcode

Unable to find explicit activity class {com.example.sahan.project/com.example.sahan.project.Qrcode}; have you declared this activity in your AndroidManifest.xml?
Aditya Vyas-Lakhan
  • 13,409
  • 16
  • 61
  • 96
Deepak
  • 756
  • 4
  • 10
0

add this in your Manifest

<activity
        android:name=".Qrcode"/>
Aditya Vyas-Lakhan
  • 13,409
  • 16
  • 61
  • 96