Java MainActivity无法强制转换为android.app.Activity

Java MainActivity无法强制转换为android.app.Activity,java,android,Java,Android,我知道这个问题已经被问了很多次,我一直在试图解决它,但我似乎真的不明白问题是什么。我对安卓工作室和安卓工作室都是新手,所以老实说,我几乎不知道自己在做什么。根据logcat告诉我的,我假设错误发生在MainActivity.java类中。这是我的日志 2020-06-15 01:33:41.885 21773-21773/com.example.hoply5 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.hoply5,

我知道这个问题已经被问了很多次,我一直在试图解决它,但我似乎真的不明白问题是什么。我对安卓工作室和安卓工作室都是新手,所以老实说,我几乎不知道自己在做什么。根据logcat告诉我的,我假设错误发生在MainActivity.java类中。这是我的日志

2020-06-15 01:33:41.885 21773-21773/com.example.hoply5 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.hoply5, PID: 21773
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.hoply5/com.example.hoply5.MainActivity}: java.lang.ClassCastException: com.example.hoply5.MainActivity cannot be cast to android.app.Activity
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3272)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7523)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)
 Caused by: java.lang.ClassCastException: com.example.hoply5.MainActivity cannot be cast to android.app.Activity
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:41)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:223) 
    at android.app.ActivityThread.main(ActivityThread.java:7523) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941) 
这是我的主要活动课

public class SecondFragment extends Fragment {

EditText editTxtName, editTxtEmail, editTxtPwd, editTextCnfPwd;
Button backBtn, registerBtn;
private UserDao userDao;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_second, container, false);

    editTxtName = view.findViewById(R.id.editName);
    editTxtEmail = view.findViewById(R.id.editEmail);
    editTxtPwd = view.findViewById(R.id.editPwd);
    registerBtn = view.findViewById(R.id.registerBtn2);
    editTextCnfPwd = view.findViewById(R.id.editCnfPwd);
    backBtn = view.findViewById(R.id.backBtn);

    backBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), MainActivity.class);
            startActivity(intent);
        }

    });

    userDao = Room.databaseBuilder(getActivity(), UserDatabase.class, "User").build().getUserDao();

    registerBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String userName = editTxtName.getText().toString().trim();
            String email = editTxtEmail.getText().toString().trim();
            String password = editTxtPwd.getText().toString().trim();
            String passwordCnf = editTextCnfPwd.getText().toString().trim();

            if(password.equals(passwordCnf)) {
                User user = new User(userName,password,email);
                userDao.insert(user);
                Intent transitionLogin = new Intent(getActivity(), MainActivity.class);
                startActivity(transitionLogin);
            } else {
                Toast.makeText(getActivity(), "Password is not matching", Toast.LENGTH_SHORT).show();
            }
        }
    });
   return view;
}

}

你的主要活动是片段,所以你必须替换它

嗨~你发布的代码似乎是第二个片段,也许你粘贴了错误的代码?@Hababa-hmm,我会试试。然而,如果我这样做了,我在做意图陈述时似乎不能使用这个,那么还有其他的选择吗?哦,我说的可能是你粘贴了错误的代码,这意味着我认为你在StackOverflow上发布的代码可能是错误的。您可以看到,您请求的是MainActivity类,但您发布的代码是SecondFragment。