Java 不幸的是,应用程序已经停止了大脑游戏应用程序中的错误
大家好,社区我是hamza,我是android开发新手,我学习了太多教程,最好的是我的UDEMY中的rob percival先生,我现在正在创建一个简单的大脑游戏应用程序,它可以计算你一分钟内可以解决多少个操作,在完成编码后,应用程序甚至不会在消息中堆叠。不幸的是,应用程序已经停止,谢谢你帮我调试代码,因为我不想看任何人的代码。非常感谢你,我很感激 JAVA主代码:Java 不幸的是,应用程序已经停止了大脑游戏应用程序中的错误,java,android,xml,debugging,android-studio,Java,Android,Xml,Debugging,Android Studio,大家好,社区我是hamza,我是android开发新手,我学习了太多教程,最好的是我的UDEMY中的rob percival先生,我现在正在创建一个简单的大脑游戏应用程序,它可以计算你一分钟内可以解决多少个操作,在完成编码后,应用程序甚至不会在消息中堆叠。不幸的是,应用程序已经停止,谢谢你帮我调试代码,因为我不想看任何人的代码。非常感谢你,我很感激 JAVA主代码: package com.example.hfpro.braintrainer; import android.os.Handle
package com.example.hfpro.braintrainer;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// Layouts Pointers
final TextView counter = (TextView)findViewById(R.id.counter) ;
final TextView operation = (TextView)findViewById(R.id.operation) ;
final TextView button1 = (TextView) findViewById(R.id.choice1) ;
final TextView button2 = (TextView) findViewById(R.id.choice2) ;
final TextView button3 = (TextView) findViewById(R.id.choice3) ;
final TextView button4 = (TextView) findViewById(R.id.choice4) ;
final TextView total = (TextView) findViewById(R.id.total) ;
final TextView result = (TextView) findViewById(R.id.result) ;
final Button start = (Button) findViewById(R.id.start) ;
int counterNumber ;
int correctResult ;
int score = 0 ;
int levels = 1 ;
Random random = new Random() ;
public void operation(View view)
{
String temp = String.valueOf(score)+" / " + String.valueOf(levels) ;
total.setText(temp);
int num1 = Math.abs(random.nextInt()%50) ;
int num2 = Math.abs(random.nextInt()%50) ;
correctResult = num1 + num2 ;
temp = String.valueOf(num1) + " + " +String.valueOf(num2) + " = ? " ;
operation.setText(temp);
// set the correct result in a result suggetoin
int correctResultPosition = Math.abs(random.nextInt()%4) ;
switch (correctResultPosition)
{
case 0 :
button1.setText(String.valueOf(correctResult));
break;
case 1 :
button2.setText(String.valueOf(correctResult));
break;
case 2 :
button3.setText(String.valueOf(correctResult));
break;
case 3 :
button4.setText(String.valueOf(correctResult));
break;
default:
}
}
public void start(final View view)
{
// quetions() ;
counter.setText("60");
start.animate().alpha(0).setDuration(500) ;
// timer
final Handler handler = new Handler() ;
Runnable runnable = new Runnable() {
@Override
public void run() {
counterNumber = Integer.valueOf((String)counter.getText()) ;
counterNumber -- ;
if(counterNumber == 0 )
{
//timeFinished
String res = "Time is up your score is :"+ String.valueOf(score) + " :::";
result.setText(res);
}
counter.setText(String.valueOf(counterNumber));
handler.postDelayed(this , 1000) ;
}
} ;
handler.post(runnable) ;
}
public void checkResult(View view)
{
switch (view.getId())
{
case R.id.choice1 :
if(correctResult == Integer.valueOf((String)button1.getText()))
{
score++ ;
String str = String.valueOf(score) + " / " + String.valueOf(levels) ;
total.setText(str);
}
levels++ ;
break;
case R.id.choice2 :
if(correctResult == Integer.valueOf((String)button2.getText()))
{
score++ ;
String str = String.valueOf(score) + " / " + String.valueOf(levels) ;
total.setText(str);
}
levels++ ;
break;
case R.id.choice3 :
if(correctResult == Integer.valueOf((String)button3.getText()))
{
score++ ;
String str = String.valueOf(score) + " / " + String.valueOf(levels) ;
total.setText(str);
}
levels++ ;
break;
case R.id.choice4:
if(correctResult == Integer.valueOf((String)button4.getText()))
{
score++ ;
String str = String.valueOf(score) + " / " + String.valueOf(levels) ;
total.setText(str);
}
levels++ ;
break;
default:
}
this.operation(view);
}
}
这是XML代码:
<?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.hfpro.braintrainer.MainActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true">
<TextView
android:layout_width="150dp"
android:layout_height="100dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/RES1"
android:id="@+id/choice1"
android:layout_gravity="left|center_vertical"
android:background="#e1e2b7" />
<TextView
android:layout_width="150dp"
android:layout_height="100dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/RES2"
android:id="@+id/choice2"
android:layout_gravity="right|center_vertical"
android:background="#6b4ec8" />
<TextView
android:layout_width="150dp"
android:layout_height="100dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/RES3"
android:id="@+id/choice3"
android:layout_gravity="left|bottom"
android:background="#65ba8c" />
<TextView
android:layout_width="150dp"
android:layout_height="100dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/RES4"
android:id="@+id/choice4"
android:layout_gravity="right|bottom"
android:background="#dcb27e" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/start"
android:id="@+id/start"
android:layout_gravity="center"
android:onClick="start" />
<TextView
android:layout_width="wrap_content"
android:layout_height="43dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/operation"
android:id="@+id/operation"
android:layout_gravity="center_horizontal|top"
android:onClick="operation" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/result"
android:id="@+id/counter"
android:layout_gravity="left|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/counter"
android:id="@+id/total"
android:layout_gravity="right|top" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/result"
android:id="@+id/result"
android:layout_gravity="center_horizontal|bottom" />
</FrameLayout>
</RelativeLayout>
我使用string.xml,他在这里:
<resources>
<string name="app_name">BrainTrainer</string>
<string name="RES1">RES1</string>
<string name="RES2">RES2</string>
<string name="RES3">RES3</string>
<string name="RES4">RES4</string>
<string name="operation">operation</string>
<string name="counter">60</string>
<string name="level">0/1</string>
<string name="start">Start</string>
<string name="result">result</string>
</resources>
脑力训练者
RES1
RES2
RES3
RES4
活动
60
0/1
开始
结果
好吧,将来仍然要发布堆栈跟踪。但是我可以告诉你你的问题-你不能把findviewbyd调用放在这样的函数之外。您需要在onCreate中初始化这些变量,并使它们成为非最终变量。在setContentView设置contentView之前,找不到任何视图,因此findViewById将返回null。发布堆栈跟踪。它会告诉你问题在哪里,是什么。非常感谢,它现在工作得很好,希望你有一个可怕的一天:)和平。