Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类似代码不存在时发生非法状态异常';不要制造错误_Java_Android_Illegalstateexception - Fatal编程技术网

Java 类似代码不存在时发生非法状态异常';不要制造错误

Java 类似代码不存在时发生非法状态异常';不要制造错误,java,android,illegalstateexception,Java,Android,Illegalstateexception,因此,我编写了两个代码片段,一个按预期工作,另一个生成和IllegalStateException错误,在我看来,这两个片段应该做完全相同的事情。为什么我在使用GameScreen对象时会遇到错误。GameScreen目标代码应将相同的内容返回到工作代码。所以我不明白为什么这不起作用 工作代码: public void begin(View view) { Class<?>[] cls = new Class<?>[5]; cls[0]=

因此,我编写了两个代码片段,一个按预期工作,另一个生成和
IllegalStateException
错误,在我看来,这两个片段应该做完全相同的事情。为什么我在使用
GameScreen
对象时会遇到错误。
GameScreen
目标代码应将相同的内容返回到工作代码。所以我不明白为什么这不起作用

工作代码:

public void begin(View view) {

        Class<?>[] cls = new Class<?>[5];
        cls[0]=QuickTouchActivity.class;
        cls[1]=LongTouchActivity.class;
        cls[2]=MiddleTouchActivity.class;
        cls[3]=LeftTouchActivity.class;
        cls[4]=RightTouchActivity.class;
        Random r= new Random();


        Intent intent = new Intent(this, cls[r.nextInt(cls.length)]);
        startActivity(intent);



}
import java.util.Random;
公共类游戏屏幕
{
私有类[]cls;
公共游戏屏幕()
{
cls=新类别[5];
类别[]cls=新类别[5];
cls[0]=QuickTouchActivity.class;
cls[1]=LongtouchaActivity.class;
cls[2]=MiddleTouchActivity.class;
cls[3]=LeftTouchActivity.class;
cls[4]=RightTouchActivity.class;
}
公共类getRandomScreen()
{
随机r=新随机();
返回cls[r.nextInt(cls.length)];
}
}
日志:

05-21 19:09:03.849: E/AndroidRuntime(361): FATAL EXCEPTION: main
05-21 19:09:03.849: E/AndroidRuntime(361): java.lang.IllegalStateException: Could not execute method of the activity
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$1.onClick(View.java:2704)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View.performClick(View.java:3100)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$PerformClick.run(View.java:11644)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Looper.loop(Looper.java:126)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.app.ActivityThread.main(ActivityThread.java:3997)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-21 19:09:03.849: E/AndroidRuntime(361):  at dalvik.system.NativeStart.main(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361): Caused by: java.lang.reflect.InvocationTargetException
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$1.onClick(View.java:2699)
05-21 19:09:03.849: E/AndroidRuntime(361):  ... 11 more
05-21 19:09:03.849: E/AndroidRuntime(361): Caused by: java.lang.NullPointerException
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.content.ComponentName.<init>(ComponentName.java:76)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.content.Intent.<init>(Intent.java:2840)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.example.worldshardestgame.Home.begin(Home.java:41)
05-21 19:09:03.849: E/AndroidRuntime(361):  ... 14 more
05-21 19:09:03.849:E/AndroidRuntime(361):致命异常:主
05-21 19:09:03.849:E/AndroidRuntime(361):java.lang.IllegalStateException:无法执行活动的方法
05-21 19:09:03.849:E/AndroidRuntime(361):在android.view.view$1.onClick(view.java:2704)
05-21 19:09:03.849:E/AndroidRuntime(361):在android.view.view.performClick(view.java:3100)上
05-21 19:09:03.849:E/AndroidRuntime(361):在android.view.view$PerformClick.run(view.java:11644)
05-21 19:09:03.849:E/AndroidRuntime(361):在android.os.Handler.handleCallback(Handler.java:587)上
05-21 19:09:03.849:E/AndroidRuntime(361):在android.os.Handler.dispatchMessage(Handler.java:92)上
05-21 19:09:03.849:E/AndroidRuntime(361):在android.os.Looper.loop(Looper.java:126)上
05-21 19:09:03.849:E/AndroidRuntime(361):位于android.app.ActivityThread.main(ActivityThread.java:3997)
05-21 19:09:03.849:E/AndroidRuntime(361):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-21 19:09:03.849:E/AndroidRuntime(361):位于java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849:E/AndroidRuntime(361):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-21 19:09:03.849:E/AndroidRuntime(361):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-21 19:09:03.849:E/AndroidRuntime(361):在dalvik.system.NativeStart.main(本机方法)
05-21 19:09:03.849:E/AndroidRuntime(361):由以下原因引起:java.lang.reflect.InvocationTargetException
05-21 19:09:03.849:E/AndroidRuntime(361):位于java.lang.reflect.Method.Invokenactive(本机方法)
05-21 19:09:03.849:E/AndroidRuntime(361):位于java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849:E/AndroidRuntime(361):在android.view.view$1.onClick(view.java:2699)
05-21 19:09:03.849:E/AndroidRuntime(361):。。。还有11个
05-21 19:09:03.849:E/AndroidRuntime(361):由以下原因引起:java.lang.NullPointerException
05-21 19:09:03.849:E/AndroidRuntime(361):位于android.content.ComponentName.(ComponentName.java:76)
05-21 19:09:03.849:E/AndroidRuntime(361):在android.content.Intent.(Intent.java:2840)
05-21 19:09:03.849:E/AndroidRuntime(361):在com.example.worldshardestgame.Home.begin(Home.java:41)
05-21 19:09:03.849:E/AndroidRuntime(361):。。。14多

是因为您在gamescreen构造函数中声明了两个不同的cls变量吗?只有一个实例字段就足够了。我不知道为什么delcaring和delcaring都会生成非法状态异常,但这可能是您的问题。

您确定所有的.class在传递给intent时都能正常工作吗?@ZouZou是的,所有这些都能正确工作,所以发布logcat plsAgree,您正在为本地cls变量赋值,该变量将在其他方法中超出范围
import java.util.Random;

public class GameScreen 
{
private Class<?>[] cls;

public GameScreen()
{
    cls= new Class<?>[5];
    Class<?>[] cls = new Class<?>[5];
    cls[0]=QuickTouchActivity.class;
    cls[1]=LongTouchActivity.class;
    cls[2]=MiddleTouchActivity.class;
    cls[3]=LeftTouchActivity.class;
    cls[4]=RightTouchActivity.class;
}

public Class<?> getRandomScreen()
{
    Random r= new Random();
    return cls[r.nextInt(cls.length)];
}

}
05-21 19:09:03.849: E/AndroidRuntime(361): FATAL EXCEPTION: main
05-21 19:09:03.849: E/AndroidRuntime(361): java.lang.IllegalStateException: Could not execute method of the activity
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$1.onClick(View.java:2704)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View.performClick(View.java:3100)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$PerformClick.run(View.java:11644)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Handler.handleCallback(Handler.java:587)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.os.Looper.loop(Looper.java:126)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.app.ActivityThread.main(ActivityThread.java:3997)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-21 19:09:03.849: E/AndroidRuntime(361):  at dalvik.system.NativeStart.main(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361): Caused by: java.lang.reflect.InvocationTargetException
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invokeNative(Native Method)
05-21 19:09:03.849: E/AndroidRuntime(361):  at java.lang.reflect.Method.invoke(Method.java:491)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.view.View$1.onClick(View.java:2699)
05-21 19:09:03.849: E/AndroidRuntime(361):  ... 11 more
05-21 19:09:03.849: E/AndroidRuntime(361): Caused by: java.lang.NullPointerException
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.content.ComponentName.<init>(ComponentName.java:76)
05-21 19:09:03.849: E/AndroidRuntime(361):  at android.content.Intent.<init>(Intent.java:2840)
05-21 19:09:03.849: E/AndroidRuntime(361):  at com.example.worldshardestgame.Home.begin(Home.java:41)
05-21 19:09:03.849: E/AndroidRuntime(361):  ... 14 more