我是android编程的初学者。

我正在制作一个测验应用程序,如果玩家正确回答,我会在其中增加得分。如果玩家回答有误,我想在屏幕上显示玩家的最终得分。我使用以下代码更新每个正确答案的分数和等级,并使用错误答案启动GameOverActivity.java:

boolean isCorrect(int answerGiven) {
    if (answerGiven == correctAnswer) {
        Toast.makeText(getApplicationContext(), "Well done!",
                Toast.LENGTH_LONG).show();
        correctTrueOrFalse = true;
    } else {
        correctTrueOrFalse = false;
    }
    return correctTrueOrFalse;
}

void updateScoreAndLevel(int answerGiven) {
    if (isCorrect(answerGiven)) {
        for (int i = 1; i <= currentLevel; i++) {
            currentScore = currentScore + i;
        }
        currentLevel++;
    }
    else {
        Intent k = new Intent (GameActivity.this, GameOverActivity.class); //#######
        startActivity(k);
    }
}


但是,每当我运行该应用程序时,每个正确答案都会成功更新分数和等级,但是一旦我给出错误答案,应用程序就会崩溃,并且无法启动GameOverActivity.class(屏幕上显示游戏代码)。

我的GameOverActivity文件似乎完全正确,我认为问题出在######标记的行中。请帮助我找出问题所在。

编辑:我的清单文件:

<?xml version="1.0" encoding="utf-8"?>




<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        android:screenOrientation="portrait"
    </activity>
    <activity android:name=".GameActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        android:screenOrientation="portrait"
    </activity>
</application>




是的,我看到我的GameOverActivity文件未在清单中注册。我以为android studio会自动在清单中注册文件。那么如何注册呢?请记住,我在GameActivity和GameOverActivity文件中都有意图,因此清单可能必须相应地进行更改。

最佳答案

将此添加到清单文件,然后重试:

<activity android:name=".GameOverActivity" />


您的所有活动都必须在清单文件中声明...

08-15 21:37