【问题标题】:I don't have errors, but my app keeps closing我没有错误,但我的应用程序不断关闭
【发布时间】:2020-03-08 11:06:13
【问题描述】:

根据代码我没有问题,但是为什么我的应用程序在运行时一直关闭 我是java初学者 我正在为我的论文制作一个测验应用程序 ps 我只复制youtube中的代码并编辑它 请帮我打开我的应用程序

MainActivity.java

LtoQuiz.java

package com.example.ltoexam;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class LtoQuiz extends AppCompatActivity {

    private com.example.ltoexam.QuestionLibrary nQuestionLibrary = new com.example.ltoexam.QuestionLibrary();

    private TextView nScoreView;
    private TextView nQuestionView;
    private Button nButtonChoice1;
    private Button nButtonChoice2;
    private Button nButtonChoice3;

    private String nAnswer;
    private int nScore = 0;
    private int nQuestionNumber = 0;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        nScoreView = (TextView) findViewById(R.id.score);
        nQuestionView = (TextView) findViewById(R.id.question);
        nButtonChoice1 = (Button) findViewById(R.id.choice1);
        nButtonChoice2 = (Button) findViewById(R.id.choice2);
        nButtonChoice3 = (Button) findViewById(R.id.choice3);

        updateQuestion();

        //Start of Button Listener for Button1
        nButtonChoice1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //My logic for Button goes in here
                if (nButtonChoice1.getText() == nAnswer){
                    nScore =nScore + 1;
                    updateScore(nScore);
                    updateQuestion();
                    //This line of code is optional
                    Toast.makeText(LtoQuiz.this, "correct", Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(LtoQuiz.this, "wrong", Toast.LENGTH_SHORT).show();
                    updateQuestion();
                }
            }
        });

        //End of Button Listener for Button2


        //Start of Button Listener for Button2
        nButtonChoice2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //My logic for Button goes in here
                if (nButtonChoice2.getText() == nAnswer){
                    nScore =nScore + 1;
                    updateScore(nScore);
                    updateQuestion();
                    //This line of code is optional
                    Toast.makeText(LtoQuiz.this, "correct", Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(LtoQuiz.this, "wrong", Toast.LENGTH_SHORT).show();
                    updateQuestion();
                }
            }
        });

        //End of Button Listener for Button2


        //Start of Button Listener for Button3
        nButtonChoice3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //My logic for Button goes in here
                if (nButtonChoice3.getText() == nAnswer){
                    nScore =nScore + 1;
                    updateScore(nScore);
                    updateQuestion();
                    //This line of code is optional
                    Toast.makeText(LtoQuiz.this, "correct", Toast.LENGTH_SHORT).show();
                }else {
                    Toast.makeText(LtoQuiz.this, "wrong", Toast.LENGTH_SHORT).show();
                    updateQuestion();
                }
            }
        });

        //End of Button Listener for Button2




    }
    private void updateQuestion(){
        nQuestionView.setText(nQuestionLibrary.getQuestion(nQuestionNumber));
        nButtonChoice1.setText(nQuestionLibrary.getChoice1(nQuestionNumber));
        nButtonChoice2.setText(nQuestionLibrary.getChoice2(nQuestionNumber));
        nButtonChoice3.setText(nQuestionLibrary.getChoice3(nQuestionNumber));

        nAnswer = nQuestionLibrary.getCorrectAnswer(nQuestionNumber);
        nQuestionNumber++;
    }


    private void updateScore(int point){
        nScoreView.setText("" + nScore);

    }

}

问题库.java

package com.example.ltoexam;

public class QuestionLibrary {

    private String nQuestions [] = {
            "1.The three colors of the traffic lights are:",
            "2.Yellow triangular signs provide what kind of information",
            "3.Which of the following traffic signs are blue?",
            "4.Steady green light means",
            "5.A flashing yellow light at a road crossing signifies",
            "6.A solid white line on the right edge of the highway slopes in towards your left. This shows that",
            "7.You are in a No-Passing zone when the center of the road is marked by"

    };

    private String nChoices [] [] = {
            {"red, green and yellow", "red, green and blue", "yellow, green and blue"},
            {"warning", "hospital across", "speed limit"},
            {"regulatory signs", "information signs", "danger warning signs"},
            {"you must yield to all pedestrians and other motorists using the intersection", "go, it is safe to do so", "proceed cautiously through the intersection before the light changes to red."},
            {"Caution - slow down and proceed with caution", "Stop and stay until light stops flashing", "Wait for the green light"},
            {"there is an intersection joint ahead", "the road will get narrower", "you are approaching a construction area"},
            {"a broken yellow line","a broken white line","two solid yellow lines"}




    };

    private String nCorrectAnsers[] = {"red, green and yellow", "warning", "information signs", "go, it is safe to do so", "Caution - slow down and proceed with caution", "the road will get narrower", "two solid yellow lines"};

    public String getQuestion(int a) {
        String question = nQuestions[a];
        return question;
    }

    public String getChoice1(int a) {
        String choice0 = nChoices[a] [0];
        return choice0;
    }

    public String getChoice2(int a) {
        String choice1 = nChoices[a] [1];
        return choice1;
    }

    public String getChoice3(int a) {
        String choice2 = nChoices[a] [2];
        return choice2;
    }

    public String getCorrectAnswer(int a) {
        String answer = nCorrectAnsers[a];
        return answer;
    }


}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingTop="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="16dp"
    tools:context=".LtoQuiz">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:layout_marginBottom="40dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Score"
            android:textSize="20sp"
            android:layout_alignParentLeft="true"
            android:id="@+id/score_text"/>


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:layout_alignParentRight="true"
            android:text="0"
            android:id="@+id/score"/>




    </RelativeLayout>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:text="Which thing is alive?"
        android:textSize="20sp"
        android:padding="8dp"
        android:layout_marginBottom="40dp"
        android:id="@+id/question"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="bird"
        android:background="#0091EA"
        android:textColor="#fff"
        android:padding="8dp"
        android:layout_marginBottom="24dp"
        android:id="@+id/choice1"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="door"
        android:background="#0091EA"
        android:textColor="#fff"
        android:padding="8dp"
        android:layout_marginBottom="24dp"
        android:id="@+id/choice2"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="rock "
        android:background="#0091EA"
        android:textColor="#fff"
        android:padding="8dp"
        android:layout_marginBottom="24dp"
        android:id="@+id/choice3"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Quit"
        android:background="#871C1C"
        android:textColor="#fff"
        android:padding="8dp"
        android:layout_marginBottom="24dp"
        android:id="@+id/quit"/>



</LinearLayout>

我的错误

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.ltoexam, PID: 4530
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ltoexam/com.example.ltoexam.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.ltoexam.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.ltoexam-M42DBs42t6LEwfwChdwEyw==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.ltoexam-M42DBs42t6LEwfwChdwEyw==/lib/arm64, /system/lib64, /vendor/lib64]]
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2979)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:192)
        at android.app.ActivityThread.main(ActivityThread.java:6754)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.ltoexam.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.ltoexam-M42DBs42t6LEwfwChdwEyw==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.ltoexam-M42DBs42t6LEwfwChdwEyw==/lib/arm64, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1180)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2783)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2979) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1683) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:192) 
        at android.app.ActivityThread.main(ActivityThread.java:6754) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:828) 
I/Process: Sending signal. PID: 4530 SIG: 9
Disconnected from the target VM, address: 'localhost:8614', transport: 'socket'

logcat 未完成

08 18:54:20.316 595-595/? V/LocSvc_HIDL_IzatSubscription: [wifiSupplicantStatusUpdate][682] [HS]

【问题讨论】:

  • 没有找到类“com.example.ltoexam.MainActivity”
  • 您的清单写对了吗?你也应该发布它
  • "I have no errors" 但这java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ltoexam/com.example.ltoexam.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.ltoexam.MainActivity" 讲述了一个不同的故事。
  • 请发布您的清单文件(AndroidManifest.xml)代码

标签: java android arrays runtime-error


【解决方案1】:

您好,如果您检查这部分错误消息:

: java.lang.ClassNotFoundException: Didn't find class"com.example.ltoexam.MainActivity"

你可以看到,android studio 正在寻找那个 MainActivity 类。并且快速浏览您提供的信息,没有 MainActivity 类。这是在您运行应用程序时首先被调用的类,并且具有该 activity_main 的布局。 (必须叫 MainActivity.class)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2022-10-02
    相关资源
    最近更新 更多