Здравствуйте! Когда я делал одно приложение в Android Studio, на java, оно не имело ошибок в коде, но была ошибка в телефоне, системе, вот она:
java.lang.IllegalStateException: Could not find method send_button(View) in a parent or ancestor Context for androidnClick attribute defined on view class androidx.appcompat.widget.AppCompatButton with id 'send_button'
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:436)
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:393)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Вот activity_main.xml:
А вот MainActivity.java
Поскольку упомянается SendMessage.java (да, это не .class, .class это функция. файл .java) прикреплю и его:
Я искал решение в интернете, но ничего подходящего не нашел. Были похожие ситуации, но у меня решения отуда не помогали. Поэтому спрашиваю здесь. В логе указывается на метод, который описан в классе MainActivity, и расположена кнопка в activity_main, так что ошибка в activity_main.xml или в MainActivity.java. Поэтому прикрепляю их здесь. Если понадобится весь код, то зип файл есть на гитхабе - https://github.com/some-work-some-prog/some-work-some-prog.github.io/raw/master/RateApp_AS.zip
java.lang.IllegalStateException: Could not find method send_button(View) in a parent or ancestor Context for androidnClick attribute defined on view class androidx.appcompat.widget.AppCompatButton with id 'send_button'
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:436)
at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:393)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22433)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Вот activity_main.xml:
XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
tools:context=".MainActivity">
<EditText android:id="@+id/edit_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/rate_context"/>
<Button android:id="@+id/send_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/send_button"
android:onClick="send_button"/>
</LinearLayout>
А вот MainActivity.java
Java:
package com.android.rateapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
public final static String EXTRA_MESSAGE = "EXTRA_MESSAGE";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
public void send_button(View view) {
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
Intent intent = new Intent(this, SendMessage.class);
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
}
Java:
package com.android.rateapp;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class SendMessage extends AppCompatActivity {
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
Intent intent = getIntent();
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
TextView textView = (TextView) findViewById(R.id.textview);
textView.setTextSize(40);
setContentView(textView);
}
}