Unable to instantiate activity ComponentInfo报错

问题遇到的现象和发生背景

如题,感觉在AndroidManifest.xml里都输入了,但跳转的时候还是会报错

img

问题相关代码,请勿粘贴截图

AndroidManifest.xml代码

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.mys">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Mys">

        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
        android:name=".MainActivity2"
        android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
    </activity>
        <activity android:name=".MyAdapter"
            tools:ignore="Instantiatable" />
    </application>

</manifest>

报错提示

2021-12-09 11:07:49.297 20235-20235/com.example.mys E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.mys, PID: 20235
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.mys/com.example.mys.MyAdapter}: java.lang.InstantiationException: java.lang.Class<com.example.mys.MyAdapter> has no zero argument constructor
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3365)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        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:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        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:947)
     Caused by: java.lang.InstantiationException: java.lang.Class<com.example.mys.MyAdapter> has no zero argument constructor
        at java.lang.Class.newInstance(Native Method)
        at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
        at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3353)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        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:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        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:9472021-12-09 11:07:49.303 20235-20261/com.example.mys D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so
2021-12-09 11:07:49.306 20235-20261/? D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so
2021-12-09 11:07:49.308 20235-20235/? I/Process: Sending signal. PID: 20235 SIG: 9


运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

你的Recyclerview应该放在activity_main2的布局里面

你的MyAdapter注册在清单里面干嘛? 跳转? MyAdapter不回还是个Activity吧

从MainActivity跳转到MainActivity2就会报错闪退


package com.example.mys;


import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;


public class MainActivity extends AppCompatActivity {
    private Button Login;
    private EditText User, Password;

    private CheckBox cbIsRememberPass;
    private SharedPreferences sharedPreferences;

    private List<Bean> data = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
//        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//        setContentView(R.layout.activity_login);


        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        initViews();
        sharedPreferences = getSharedPreferences("rememberpassword", Context.MODE_PRIVATE);
        boolean isRemember = sharedPreferences.getBoolean("rememberpassword", false);

        if (isRemember) {
            String user = sharedPreferences.getString("user", "");
            String password = sharedPreferences.getString("password", "");
            User.setText(user);
            Password.setText(password);
            cbIsRememberPass.setChecked(true);


        }

        User = findViewById(R.id.user);
        Password = findViewById(R.id.password);
        Login = findViewById(R.id.login);


        Login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String user = User.getText().toString();
                String password = Password.getText().toString();
                if (user.length() == 0) {
                    Toast.makeText(MainActivity.this, "用户名不能为空", Toast.LENGTH_SHORT).show();
                } else if (password.length() == 0) {
                    Toast.makeText(MainActivity.this, "密码不能为空", Toast.LENGTH_SHORT).show();
                } else if ((Password.getText().toString().trim()).equals(User.getText().toString().trim())) {
                    SharedPreferences.Editor editor = sharedPreferences.edit();
                    if (cbIsRememberPass.isChecked()) {
                        editor.putBoolean("rememberpassword", true);
                        editor.putString("user", user);
                        editor.putString("password", password);
                        Intent intent = new Intent(MainActivity.this, MyAdapter.class);

                        startActivity(intent);
                    } else {
                        editor.clear();

                    }
                    editor.commit();
                    finish();
                    Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                    Intent intent = new Intent(MainActivity.this, MainActivity2.class);

                    startActivity(intent);
                    MainActivity.this.finish();
                } else {
                    Toast.makeText(MainActivity.this, "两次输入的密码不一致", Toast.LENGTH_SHORT).show();

                }

            }
        });

    }

    private void initViews() {
        User = (EditText) findViewById(R.id.user);
        Password = (EditText) findViewById(R.id.password);
        cbIsRememberPass = (CheckBox) findViewById(R.id.cbIsRememberPass);
    }

    public void callPhone(View view) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_DIAL);
        intent.setData(Uri.parse("tel:071"));
        startActivity(intent);
    }
}

Intent intent = new Intent(MainActivity.this, MyAdapter.class);

                    startActivity(intent);

MyAdapter都不是Activity 怎么可以去显示启动呀 这句代码跑起来肯定会报错的