当前位置: 首页 > 知识库问答 >
问题:

无法启动活动,致命异常:main

黄飞翮
2023-03-14

我怎样才能解决这类问题?问题在于setOnClickListener,它给了我一个NullPointerException。如果你还需要什么,请告诉我。

这是日志中的错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mapsprova/com.example.home.HomeActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.cardview.widget.CardView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
    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.NullPointerException: Attempt to invoke virtual method 'void androidx.cardview.widget.CardView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
   

   
    

public class HomeActivity extends AppCompatActivity {
private CardView btn_home;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_home);

    btn_home = findViewById(androidx.appcompat.R.id.home);

    btn_home.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent intent = new Intent(HomeActivity.this, TrovamicoActivity.class);
            startActivity(intent);
        }

    });

}

共有1个答案

许安邦
2023-03-14

您的问题源于您的ClickListener,问题如下:

btn_home = findViewById(androidx.appcompat.R.id.home); // This is wrong
// I believe you have to call it this way (only if its id is 'home' in your layout)
btn_home = findViewById(R.id.home);

// This call fail with NullPointerException
btn_home.setOnClickListener(new View.OnClickListener() {
    // Listener code
});

免责声明:如果没有布局,我无法确定原因,但stacktrace非常清楚,clicklistener不能在空值上调用

首先,你没有任何像在主活动中声明的那样标识为“家”的视图。所以我假设(正如你的代码所证实的,var是一个CardView)你打算使用cardview作为(某种程度上)一个按钮。所以你必须用这段代码来代替:

btn_home = findViewById(R.id.trovamico);

现在,当你点击Trovamico Cardview(来自HomeActivity)时,它应该可以工作了

 类似资料:
  • 我在运行android应用程序时遇到这个错误 05-25 23:58:44.251:E/AndroidRuntime(1128):java.lang.RuntimeException:无法启动activity ComponentInfo{info.AndroidHive.TabsSwipe/Info.AndroidHive.TabsSwipe.MainActivity}:Android.View.

  • 问题内容: 在添加异步任务之前,我已经对代码进行了一些更改,我的应用程序可以正常运行其远程服务器上的身份验证用户名和密码,但是在登录成功消息消失后​​无法启动其他活动。有人建议我现在添加一个异步任务,但是我输入正确的用户名和密码后它将停止工作。当我输入错误的用户名和密码时,其工作正常将显示错误的用户名密码消息。如果有人能够知道会出现什么错误,请帮助我。 码- 日志猫 QuestionnActivi

  • 我已经搜索了这个错误,并找到了许多解决方案,但我无法解决这个问题,因为我是Android的初学者 舱单在下面 安装应用程序后,它第一次工作,但当我们关闭并重新打开时,它崩溃了,不幸的是,应用程序已经关闭,你有任何想法,它将非常感谢:) 谢了!

  • 我有一个浮动按钮在一个片段,并希望传递意图到另一个活动。但是,当我按下浮动按钮时,导致“无法启动activity ComponentInfo”错误。 ------------编辑---------------------- 下面是我的意图代码: