Get IllegalStateException on button click

When a button is pressed to switch to another activity, the application crashes and shows:

java.lang.IllegalStateException: Could not execute method for android:onClick 

To debug, I tried to migrate to an empty activity, but it shows the same error. I canโ€™t understand why!

This is my main java activity file, and it shows an error in the host () function:

 package com.example.unholyalliance.infinitestream; import android.content.Context; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; 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 host(View v) { Intent i = new Intent(this,Host.class); try { startActivity(i); }catch(IllegalStateException e) { Context context = getApplicationContext(); CharSequence text = e.getMessage(); int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); } } public void search(View v) { } } This is my Host.java file: import android.content.Context; import android.net.nsd.NsdManager; import android.net.nsd.NsdServiceInfo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; import java.io.IOException; import java.net.ServerSocket; public class Host extends AppCompatActivity { public String mServiceName="Stream"; ServerSocket mServerSocket=null; NsdManager.RegistrationListener mRegistrationListener=null; private NsdManager mNsdManager=null; int port=9000; TextView service_status = (TextView) findViewById(R.id.textView1); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_host); mNsdManager = (NsdManager) getSystemService(Context.NSD_SERVICE); try { initializeServerSocket(); } catch (IOException e) { e.printStackTrace(); } } public void initializeServerSocket() throws IOException { //Initialize a server socket on the next available port. mServerSocket = new ServerSocket(0); // Store the chosen port. port = mServerSocket.getLocalPort(); registerService(port); } public void registerService(int port) { // Create the NsdServiceInfo object, and populate it. NsdServiceInfo serviceInfo = new NsdServiceInfo(); // The name is subject to change based on conflicts // with other services advertised on the same network. serviceInfo.setServiceName("Stream"); serviceInfo.setServiceType("_http._tcp."); serviceInfo.setPort(port); mNsdManager.registerService( serviceInfo, NsdManager.PROTOCOL_DNS_SD, mRegistrationListener); initializeRegistrationListener(); } public void initializeRegistrationListener() { mRegistrationListener = new NsdManager.RegistrationListener() { @Override public void onServiceRegistered(NsdServiceInfo NsdServiceInfo) { // Save the service name. Android may have changed it in order to // resolve a conflict, so update the name you initially requested // with the name Android actually used. mServiceName = NsdServiceInfo.getServiceName(); service_status.setText("Success"); } @Override public void onRegistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Registration failed! Put debugging code here to determine why. service_status.setText("Registration Failed!"); } @Override public void onServiceUnregistered(NsdServiceInfo arg0) { // Service has been unregistered. This only happens when you call // NsdManager.unregisterService() and pass in this listener. service_status.setText("Registration not done"); } @Override public void onUnregistrationFailed(NsdServiceInfo serviceInfo, int errorCode) { // Unregistration failed. Put debugging code here to determine why. service_status.setText("Unregistration failed"); } }; } } 

Full stack trace:

 E/AndroidRuntime: FATAL EXCEPTION: main java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) at android.view.View.performClick(View.java:4278) at android.view.View$PerformClick.run(View.java:17429) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5099) 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:803) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570) 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.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:4278) at android.view.View$PerformClick.run(View.java:17429) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5099) 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:803) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570) at dalvik.system.NativeStart.main(Native Method) Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.unholyalliance.infinitestream/com.example.unholyalliance.infinitestream.Host}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1633) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1425) at android.app.Activity.startActivityForResult(Activity.java:3370) at android.app.Activity.startActivityForResult(Activity.java:3331) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843) at android.app.Activity.startActivity(Activity.java:3566) at android.app.Activity.startActivity(Activity.java:3534) at com.example.unholyalliance.infinitestream.MainActivity.host(MainActivity.java:23) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) at android.view.View.performClick(View.java:4278) at android.view.View$PerformClick.run(View.java:17429) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5099) 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:803) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:570) at dalvik.system.NativeStart.main(Native Method) 

Activity_main.xml file:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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: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.unholyalliance.infinitestream.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Host" android:id="@+id/host_button" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="104dp" android:clickable="true" android:onClick="host" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Search" android:id="@+id/search_button" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:onClick="search" android:clickable="true" /> </RelativeLayout> 
+9
source share
4 answers

The key part of a full stack trace is here:

Throws: android.content.ActivityNotFoundException: Cannot find explicit activity class {Com.example.unholyalliance.infinitestream / com.example.unholyalliance.infinitestream.Host}; did you announce this activity in your AndroidManifest.xml

It seems you do not have this Host activity declared in your manifest file. Open AndroidManifest.xml and check or add the following:

 <activity android:name=".Host" /> 

Also make sure that the problem is fixed in Host to first declare your TextView and then assign a value to onCreate() after setContentView() .

 private TextView service_status; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_host); service_status = (TextView) findViewById(R.id.textView1); ... } 
+7
source

Make sure your onClick in the button view in activity_main.xml looks like this: android:onClick="host"

Example:

 <Button android:id="@+id/main_activity_bt_host" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/host" android:onClick="host" /> 
0
source

The answers above are correct, but also double check if your class is registered in the manifest.

  <activity android:name=".Downloaded" android:label="@string/app_name"> </activity> 

.Downloaded is your class name above.

0
source
  java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:390) 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:5254) 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:385) 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:5254) 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.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference at com.example.firebaseproject.ProfileActivity.UpdateProfile(ProfileActivity.java:124) 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:385) 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:5254) 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) package com.example.firebaseproject; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.provider.MediaStore; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.OnSuccessListener; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DataSnapshot; import com.google.firebase.database.DatabaseError; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.database.ValueEventListener; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.UploadTask; import com.squareup.picasso.Picasso; import java.io.ByteArrayOutputStream; import java.io.IOException; import de.hdodenhof.circleimageview.CircleImageView; public class ProfileActivity extends AppCompatActivity { EditText ProName, ProMail, ProAge; CircleImageView circleImageView; private static final int Camera_req = 1234; private static final int Galary_req = 123; String name, mail, age; Uri imagepath; Bitmap bitmap; Button Editprofile, UpdateProfile; private FirebaseAuth firebaseAuth; private FirebaseDatabase firebaseDatabase; public FirebaseStorage firebaseStorage; private StorageReference storageReference; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_profile); circleImageView = findViewById(R.id.circleimg); ProName = findViewById(R.id.ProfileName); ProMail = findViewById(R.id.ProfileMail); ProAge = findViewById(R.id.ProfileAge); Editprofile = findViewById(R.id.ProfileEditBtn); UpdateProfile = findViewById(R.id.ProfileUpdateBtn); ProName.setEnabled(false); ProAge.setEnabled(false); ProMail.setEnabled(false); circleImageView.setClickable(false); UpdateProfile.setVisibility(View.INVISIBLE); getSupportActionBar().setDisplayHomeAsUpEnabled(true); firebaseAuth = FirebaseAuth.getInstance(); firebaseDatabase = FirebaseDatabase.getInstance(); firebaseStorage = FirebaseStorage.getInstance(); storageReference = firebaseStorage.getReference(); storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile pic").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { @Override public void onSuccess(Uri uri) { Picasso.get().load(uri).fit().centerCrop().into(circleImageView); } }); DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid()); databaseReference.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { UserProfileData userProfileData = dataSnapshot.getValue(UserProfileData.class); ProName.setText(userProfileData.Name); ProMail.setText(userProfileData.Email); ProAge.setText(userProfileData.Age); } @Override public void onCancelled(@NonNull DatabaseError databaseError) { Toast.makeText(ProfileActivity.this, databaseError.getCode(), Toast.LENGTH_SHORT).show(); } }); } public void EditProfile(View view) { UpdateProfile.setVisibility(View.VISIBLE); Editprofile.setVisibility(View.INVISIBLE); ProName.setEnabled(true); ProAge.setEnabled(true); ProMail.setEnabled(true); circleImageView.setClickable(true); } public void UpdateProfile(View view) { DatabaseReference databaseReference = firebaseDatabase.getReference(firebaseAuth.getUid()); name = ProName.getText().toString(); age = ProAge.getText().toString(); mail = ProMail.getText().toString(); UserProfileData userProfileData = new UserProfileData(name, mail, age); databaseReference.setValue(userProfileData); StorageReference ImageRef = storageReference.child(firebaseAuth.getUid()).child("Images").child("Profile pic"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos); byte[] data = baos.toByteArray(); final UploadTask uploadTask = ImageRef.putBytes(data); uploadTask.addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(ProfileActivity.this, "New Image Upload Fail !", Toast.LENGTH_SHORT).show(); } }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { Toast.makeText(ProfileActivity.this, "New Image Upload Success !", Toast.LENGTH_SHORT).show(); } }); Toast.makeText(this, "Profile Update Successfully", Toast.LENGTH_SHORT).show(); finish(); } public void ChangepswProfile(View view) { startActivity(new Intent(this, ChangePassword.class)); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); } return super.onOptionsItemSelected(item); } public void picshow() { AlertDialog.Builder picdialog = new AlertDialog.Builder(this); picdialog.setTitle("Select Action"); String pictureIteam[] = {"GALLARY", "CAMERA"}; picdialog.setItems(pictureIteam, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { switch (i) { case 0: galaryphoto(); break; case 1: cameraphoto(); break; } } }); picdialog.show(); } public void galaryphoto() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "SelectImage"), Galary_req); } public void cameraphoto() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, Camera_req); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == this.RESULT_CANCELED) { return; } if (requestCode == Camera_req) { bitmap = (Bitmap) data.getExtras().get("data"); circleImageView.setImageBitmap(bitmap); } else if (requestCode == Galary_req) { imagepath = data.getData(); try { bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), imagepath); circleImageView.setImageBitmap(bitmap); } catch (IOException e) { e.printStackTrace(); } } } public void ImageChange2(View view) { picshow(); } } 
0
source

All Articles