Android应用持续崩溃求助:调试测试后问题仍未解决
问题原因及解决方案
你遇到的崩溃是空指针异常(NullPointerException),根源在于你在Activity类的成员变量声明阶段直接调用findViewById()——此时布局还未加载(setContentView()还没执行),findViewById()会返回null,后续调用setOnClickListener()时就会触发崩溃。
修正后的MainActivity代码
package com.example.galleryapp; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button downloadfileactivity; Button viewfileactivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 将按钮初始化移到setContentView之后 downloadfileactivity = findViewById(R.id.downloadfile_activity); viewfileactivity = findViewById(R.id.viewfile_activity); downloadfileactivity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, DownloadFileActivity.class)); finish(); } }); viewfileactivity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, ViewFileActivity.class)); finish(); } }); } }
额外检查点
- 确认
DownloadFileActivity和ViewFileActivity已在AndroidManifest.xml中注册,未注册也会导致启动时崩溃 - 若问题仍存在,查看Logcat的崩溃栈信息,会明确标注异常类型和触发位置
内容的提问来源于stack exchange,提问作者M. Hayyan Ali
相关产品推荐
相关产品推荐

