繁体   English   中英

你好。 我是 android 应用程序开发的新手。 我尝试创建一个简单的计数器,但在构建后出现错误“无法实例化活动”

[英]Hi! I am new to android app development. I tried to create a simple counter but after build getting error “Unable to instantiate activity”

public abstract class MainActivity extends AppCompatActivity {

    Button decrement;
    Button increment;
    TextView counter_view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       // Log.i("tag", "onCreate: Created Successfully");

        increment=findViewById(R.id.inc_btn);
        decrement=findViewById(R.id.dec_btn);
        counter_view=findViewById(R.id.counter);

        increment.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String cnt_text=counter_view.getText().toString();
                int cnt_no= Integer.parseInt(cnt_text);
                cnt_no=cnt_no+1;
                counter_view.setText(cnt_no+"");
            }
        });

        decrement.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String cnt_text=counter_view.getText().toString();
                int cnt_no=Integer.parseInt(cnt_text);
                cnt_no=cnt_no-1;
                counter_view.setText(cnt_no+"");
            }
        });
    }

错误:

2021-02-10 00:29:06.870 16714-16714/? E/Zygote: v2
2021-02-10 00:29:06.871 16714-16714/? E/Zygote: accessInfo : 0
2021-02-10 00:29:07.017 16714-16714/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.counter_app, PID: 16714
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.counter_app/com.example.counter_app.MainActivity}: java.lang.InstantiationException: java.lang.Class<com.example.counter_app.MainActivity> cannot be instantiated
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2849)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
        at android.app.ActivityThread.-wrap14(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6776)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
     Caused by: java.lang.InstantiationException: java.lang.Class<com.example.counter_app.MainActivity> cannot be instantiated
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1086)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2839)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045) 
        at android.app.ActivityThread.-wrap14(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6776) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 

将此行添加到您的清单文件中

<activity android:name="your.package.name.MainActivity"/>

我想这是您在启动时显示的第一个屏幕/活动/类,即它是您的启动器活动。 如果是,

启动器活动不能是抽象的。 因为当从 Android 设备上的主屏幕启动应用程序时,Android 操作系统会在您声明为启动器活动的应用程序中创建一个活动实例。 而且抽象类不能被实例化,它们只能被子类化。

请删除您的 class 名称前的摘要一词。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM