Android java.lang.IllegalStateExeception:在活动类中找不到方法

Android java.lang.IllegalStateExeception:在活动类中找不到方法,android,android-layout,button,illegalstateexception,Android,Android Layout,Button,Illegalstateexception,我不知道为什么,但我得到了这个例外: java.lang.IllegalStateException: Could not find a method onButtonClick(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'button19' 在我的应用程序中,我不知道如何修复它。出于某种

我不知道为什么,但我得到了这个例外:

java.lang.IllegalStateException: Could not find a method onButtonClick(View) in the activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'button19'
在我的应用程序中,我不知道如何修复它。出于某种原因,它只在平板电脑布局中引发此异常。有什么建议吗

这是布局。xml

<RelativeLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rl"
    android:theme="@style/Base.Theme.AppCompat.Light">

    <com.example.czhou.myapplication2.SudokuBoardView
        android:id="@+id/board"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        custom:mCellSize="40dp"
        custom:mOrientationLandscape="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="1"
        android:id="@+id/button10"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/board"
        android:layout_toEndOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="2"
        android:id="@+id/button11"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button10"
        android:layout_toRightOf="@+id/board"
        android:layout_toEndOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="3"
        android:id="@+id/button12"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button11"
        android:layout_toRightOf="@+id/board"
        android:layout_toEndOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="4"
        android:id="@+id/button13"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button12"
        android:layout_toRightOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="5"
        android:id="@+id/button14"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button13"
        android:layout_toRightOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="6"
        android:id="@+id/button15"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button14"
        android:layout_toRightOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="7"
        android:id="@+id/button16"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button15"
        android:layout_toRightOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="8"
        android:id="@+id/button17"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button16"
        android:layout_toRightOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:text="9"
        android:id="@+id/button18"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/button17"
        android:layout_toRightOf="@+id/board"
        android:layout_toEndOf="@+id/board" />

    <Button
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:paddingLeft="4dp"
        android:paddingRight="4dp"
        android:text="Save &amp; Quit"
        android:id="@+id/button19"
        android:background="@drawable/button_background"
        android:onClick="onButtonClick"
        android:layout_below="@+id/eraser"
        android:layout_toRightOf="@+id/button10"
        android:layout_toEndOf="@+id/button10" />

    <ImageButton
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:id="@+id/eraser"
        android:src="@drawable/ic_action_eraser"
        android:background="@drawable/button_background"
        android:clickable="true"
        android:onClick="onImageButtonClick"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@+id/button19"
        android:layout_alignStart="@+id/button19" />
</RelativeLayout>

这是活动课

package com.example.czhou.myapplication2;

import android.app.FragmentManager;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RelativeLayout;

import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;


public class SudokuGameActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        SudokuBoardView sudokuBoardView = (SudokuBoardView) findViewById(R.id.board);
        sudokuBoardView.setmFileName(this.getIntent().getStringExtra("FILE"));

    }




    public void onButtonClick(View v) {
        Log.i("Button", "Button clicked!");

        Button b = (Button) findViewById(v.getId());
        Log.i("Button", b.getText().toString());

            Log.i("Button", "in the loop!");
            SudokuBoardView sudokuBoardView = (SudokuBoardView) findViewById(R.id.board);
        if(b.getText().equals("Save & Quit")) {
            saveGame();
            finish();
        }else {
            sudokuBoardView.setCellValue(Integer.parseInt(b.getText().toString()));
        }
    }
    public void onImageButtonClick(View v){
        ImageButton ib = (ImageButton) findViewById(v.getId());
        if (ib.getId() == R.id.eraser){
            SudokuBoardView sudokuBoardView = (SudokuBoardView) findViewById(R.id.board);
            sudokuBoardView.setCellValue(0);

        } else {

        }
    }

    public void saveGame(){
        FileOutputStream outputStream;

        String fn = getIntent().getStringExtra("FILE");
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 9; i++) {
            for (int j = 0; j < 9; j++) {
                if (SudokuBoardView.cells[i][j].isEditable){
                    sb.append(",");
                } else {
                    sb.append(".");
                }
                if (SudokuBoardView.cells[i][j].isWrong){
                    sb.append("!");
                } else {
                    sb.append(".");
                }

                sb.append(SudokuBoardView.cells[i][j].getValue());
            }
        }

        try {

            outputStream = openFileOutput(fn, Context.MODE_PRIVATE);
            outputStream.write(sb.toString().getBytes());
            outputStream.close();
            System.out.println("Saving... ");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}
package com.example.czhou.myapplication2;
导入android.app.FragmentManager;
导入android.content.Context;
导入android.content.res.Configuration;
导入android.graphics.drawable.drawable;
导入android.graphics.drawable.GradientDrawable;
导入android.os.Bundle;
导入android.support.v7.app.ActionBar;
导入android.support.v7.app.ActionBarActivity;
导入android.util.DisplayMetrics;
导入android.util.Log;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.view.Window;
导入android.view.WindowManager;
导入android.widget.Button;
导入android.widget.ImageButton;
导入android.widget.RelativeLayout;
导入java.io.FileOutputStream;
导入java.text.DateFormat;
导入java.text.simpleDataFormat;
导入java.util.Calendar;
公共类SudokuGameActivity扩展了ActionBarActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_游戏);
ActionBar ActionBar=getSupportActionBar();
actionBar.hide();
SudokuBoardView SudokuBoardView=(SudokuBoardView)findViewById(R.id.board);
sudokuBoardView.setmFileName(this.getIntent().getStringExtra(“文件”));
}
公共作废按钮单击(视图v){
Log.i(“按钮”,“按钮点击!”);
按钮b=(按钮)findViewById(v.getId());
Log.i(“按钮”,b.getText().toString());
Log.i(“按钮”,“在循环中!”);
SudokuBoardView SudokuBoardView=(SudokuBoardView)findViewById(R.id.board);
如果(b.getText().equals(“保存并退出”)){
saveGame();
完成();
}否则{
setCellValue(Integer.parseInt(b.getText().toString());
}
}
公共无效OnImageButton单击(视图v){
ImageButton ib=(ImageButton)findViewById(v.getId());
if(ib.getId()==R.id.橡皮擦){
SudokuBoardView SudokuBoardView=(SudokuBoardView)findViewById(R.id.board);
sudokuBoardView.setCellValue(0);
}否则{
}
}
公共存储游戏(){
FileOutputStream输出流;
字符串fn=getIntent().getStringExtra(“文件”);
StringBuilder sb=新的StringBuilder();
对于(int i=0;i<9;i++){
对于(int j=0;j<9;j++){
if(SudokuBoardView.cells[i][j].isEditable){
某人加上(“,”);
}否则{
某人加上(“.”);
}
if(SudokuBoardView.cells[i][j].isError){
某人加上“!”;
}否则{
某人加上(“.”);
}
追加(SudokuBoardView.cells[i][j].getValue());
}
}
试一试{
outputStream=openFileOutput(fn,Context.MODE\u PRIVATE);
write(sb.toString().getBytes());
outputStream.close();
System.out.println(“保存…”);
}捕获(例外e){
e、 printStackTrace();
}
}
}

我有一个非常类似的问题,它只发生在Android L上,而在旧版本上运行良好。看起来像是5.0中的bug或未记录的功能

对我有效的解决方案:

remove android:theme="@style/Base.Theme.AppCompat.Light"
从layout.xml。在AndroidManifest.xml应用程序元素中定义应用程序主题,如下所示:

<application 
         ...
         android:theme="@android:style/Theme.Holo.Light"
         ...  >

平板电脑布局是什么意思?如果您有多个布局,那么很高兴看到所有布局。