Android studio调试程序闪退或者报错:"xxx keeps stopping"解决方案

初入安卓,写程序的途中遇到了好几次调试闪退,研究之后都成功解决,以此发文记录一下。

一.方法冲突

MainActivity.java

package com.example.testdemo;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //添加跳转事件        Button btn = (Button) findViewById(R.id.list_view_vertical_stander);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent it = new Intent();                it.setClass(MainActivity.this,SecondActivity.class);                startActivity(it);            }        });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        //加载建好的菜单xml文件        getMenuInflater().inflate(R.menu.menu,menu);        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        //拿到菜单每项id,然后 switch判断具体是哪个菜单项,然后写点击后的具体操作        int itemId=item.getItemId();        switch (item.getItemId()){            case R.id.list_view_vertical_stander:                Toast.makeText(MainActivity.this,"您选择查看南部地区省长列表",Toast.LENGTH_LONG).show();                break;            case R.id.list_view_vertical_reverse:                Toast.makeText(MainActivity.this,"您选择查看南部地区人大常委列表",Toast.LENGTH_LONG).show();                break;            case R.id.list_view_horizontal_stander:                Toast.makeText(MainActivity.this,"您选择查看南部地区书记列表",Toast.LENGTH_LONG).show();                break;            case R.id.list_view_horizontal_reverse:                Toast.makeText(MainActivity.this,"您选择查看南部地区行政专员列表", Toast.LENGTH_LONG).show();                break;            case R.id.grid_view_vertical_stander:                Toast.makeText(MainActivity.this,"您选择查看中部地区省长列表",Toast.LENGTH_LONG).show();                break;            case R.id.grid_view_vertical_reverse:                Toast.makeText(MainActivity.this,"您选择查看中部地区人大常委列表",Toast.LENGTH_LONG).show();                break;            case R.id.grid_view_horizontal_stander:                Toast.makeText(MainActivity.this,"您选择查看中部地区书记列表",Toast.LENGTH_LONG).show();                break;            case R.id.grid_view_horizontal_reverse:                Toast.makeText(MainActivity.this,"您选择查看中部地区行政专员",Toast.LENGTH_LONG).show();                break;            case R.id.stagger_view_vertical_stander:                Toast.makeText(MainActivity.this,"您选择查看北部地区省长列表",Toast.LENGTH_LONG).show();                break;            case R.id.stagger_view_vertical_reverse:                Toast.makeText(MainActivity.this,"您选择查看北部地区人大常委列表",Toast.LENGTH_LONG).show();                break;            case R.id.stagger_view_horizontal_stander:                Toast.makeText(MainActivity.this,"您选择查看北部地区书记列表",Toast.LENGTH_LONG).show();                break;            case R.id.stagger_view_horizontal_reverse:                Toast.makeText(MainActivity.this,"您选择查看北部地区行政专员",Toast.LENGTH_LONG).show();                break;        }        return super.onOptionsItemSelected(item);    }}
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item android:title="南部地区干部"  android:id="@+id/list_view">        <menu>            <item android:title="省长"  android:id="@+id/list_view_vertical_stander"/>            <item android:title="人大常委"  android:id="@+id/list_view_vertical_reverse"/>            <item android:title="书记"  android:id="@+id/list_view_horizontal_stander"/>            <item android:title="行政专员"  android:id="@+id/list_view_horizontal_reverse"/>        menu>    item>    <item android:title="中部地区干部" android:id="@+id/grid_view">        <menu>            <item android:title="省长"  android:id="@+id/grid_view_vertical_stander"/>            <item android:title="人大常委"  android:id="@+id/grid_view_vertical_reverse"/>            <item android:title="书记"  android:id="@+id/grid_view_horizontal_stander"/>            <item android:title="行政专员"  android:id="@+id/grid_view_horizontal_reverse"/>        menu>    item>    <item android:title="北部地区干部"  android:id="@+id/stagger_view">        <menu>            <item android:title="省长"  android:id="@+id/stagger_view_vertical_stander"/>            <item android:title="人大常委"  android:id="@+id/stagger_view_vertical_reverse"/>            <item android:title="书记"  android:id="@+id/stagger_view_horizontal_stander"/>            <item android:title="行政专员"  android:id="@+id/stagger_view_horizontal_reverse"/>        menu>    item>menu>

以下是效果图,一个简单的二级菜单页,点击能显示你选择了什么item。

然后我又新建了第二个页面准备让他实现跳转,就在第一个页面的**onCreate()**方法中绑定了跳转事件,加入如下代码。

//添加跳转事件        Button btn = (Button) findViewById(R.id.list_view_vertical_stander);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent it = new Intent();                it.setClass(MainActivity.this,SecondActivity.class);                startActivity(it);            }        });

问题来了,然后开始调试,程序就闪退——“xxx keeps stopping”

经检查后发现,是onOptionsItemSelected()方法和我onCreate()方法产生冲突,实现了同一个点击事件!!

只要把onCreate()方法中的点击跳转事件放到同一个事件即可。


二.参数类型不符

例如想给某个textView的text属性赋值调用 textView1.setText(xxx) 方法,其中的xxx必须为指定参数类型String,否则程序也会闪退。

更多相关文章

  1. 使用Android(安卓)Studio搭建Android集成开发环境(图文教程)
  2. 【Android(安卓)应用开发】Ubuntu 下 Android(安卓)Studio 开发
  3. Android问题集锦
  4. Android(安卓)Studio中集成OpenCV——只需4步
  5. Android中如何查看so崩溃的log
  6. Android(安卓)开发常用ADB命令集合
  7. Android(安卓)Studio 常用技巧
  8. android studio打包apk
  9. 剪切图片-扩展android 选择图片(从手机照相机或手机图片)

随机推荐

  1. Android 沉浸式与输入法冲突
  2. android: slide 滑动动画效果
  3. android中将静态库链接进动态库成功的例
  4. 登录+注册界面的实现(代码)
  5. Android Progressbar
  6. Android Activity间用Intent和Bundle传递
  7. Android 线程的使用(传递多个参数)
  8. Android 截屏并写入SD卡中
  9. ImageView 设置图片
  10. zygote服务启动