我有一些我在Android Studio中工作的代碼。目標是創建一個應用程序,當您按下開始按鈕時,該應用程序的計數器會快速上升,一旦達到所需輸入,您將按下停止按鈕,並記錄距離期望值有多遠。這是測試反應時間等。問題是,無論何時我在手機或模擬器上運行應用程序,應用程序立即崩潰都會給出錯誤「不幸的是,Timer Test已停止工作。」有人知道問題可能是什麼嗎?Android Studio代碼無法正常工作?
在MainActivity.java代碼:
package com.ultraman11.timertest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
public int numCounter = 0;
public boolean counting = false;
TextView counter = (TextView) findViewById(R.id.counter);
TextView difference = (TextView) findViewById(R.id.diff);
EditText numInput = (EditText) findViewById(R.id.numInput);
public int userInt = Integer.parseInt(numInput.getText().toString());
public int differenceInt = Math.abs(numCounter - userInt);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void resetButton(View v){
numCounter = 0;
difference.setText("Difference: ");
counter.setText(Integer.toString(0));
}
public void startButton(View v){
counting = true;
while(counting){
numCounter++;
}
}
public void stopButton(View v){
counting = false;
difference.setText("Difference: " + Integer.toString(differenceInt));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
在activity_main.xml中的代碼
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Reset"
android:id="@+id/button"
android:nestedScrollingEnabled="false"
android:onClick="resetButton"
android:layout_below="@+id/numInput"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:id="@+id/button2"
android:onClick="startButton"
android:layout_below="@+id/numInput"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:layout_marginTop="112dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="0"
android:id="@+id/counter"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="79dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/numInput"
android:inputType="number"
android:layout_below="@+id/counter"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:layout_marginTop="31dp"
android:layout_alignRight="@+id/button"
android:layout_alignEnd="@+id/button" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"
android:id="@+id/button3"
android:layout_marginTop="23dp"
android:layout_below="@+id/button2"
android:layout_alignLeft="@+id/button2"
android:layout_alignStart="@+id/button2"
android:onClick="stopButton" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Difference: "
android:id="@+id/diff"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="43dp" />
</RelativeLayout>
logcat的錯誤
09-10 17:33:45.103: D/AndroidRuntime(3445): Shutting down VM
09-10 17:33:45.104: E/AndroidRuntime(3445): FATAL EXCEPTION: main
09-10 17:33:45.104: E/AndroidRuntime(3445): Process: com.ultraman11.timertest, PID: 3445
09-10 17:33:45.104: E/AndroidRuntime(3445): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ultraman11.timertest/com.ultraman11.timertest.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.os.Handler.dispatchMessage(Handler.java:102)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.os.Looper.loop(Looper.java:135)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread.main(ActivityThread.java:5254)
09-10 17:33:45.104: E/AndroidRuntime(3445): at java.lang.reflect.Method.invoke(Native Method)
09-10 17:33:45.104: E/AndroidRuntime(3445): at java.lang.reflect.Method.invoke(Method.java:372)
09-10 17:33:45.104: E/AndroidRuntime(3445): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-10 17:33:45.104: E/AndroidRuntime(3445): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-10 17:33:45.104: E/AndroidRuntime(3445): Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:124)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59)
09-10 17:33:45.104: E/AndroidRuntime(3445): at com.ultraman11.timertest.MainActivity.onCreate(MainActivity.java:26)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.Activity.performCreate(Activity.java:5990)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
09-10 17:33:45.104: E/AndroidRuntime(3445): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
09-10 17:33:45.104: E/AndroidRuntime(3445): ... 10 more
09-10 17:33:47.163: I/Process(3445): Sending signal. PID: 3445 SIG: 9
請提供堆棧跟蹤從logcat的 – sberezin
無堆棧跟蹤,我們只能掃描你的代碼,並試圖找出問題的出處。請幫助我們,通過發佈堆棧跟蹤和相關信息來幫助您。這有助於我們更容易地爲您提供幫助。 – JoxTraex