Android(安卓)stdio调试程序闪退或者报错:"xxx keeps stopping"解决方案
16lz
2022-04-08
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,否则程序也会闪退。
更多相关文章
- 使用Android(安卓)Studio搭建Android集成开发环境(图文教程)
- 【Android(安卓)应用开发】Ubuntu 下 Android(安卓)Studio 开发
- Android问题集锦
- Android(安卓)Studio中集成OpenCV——只需4步
- Android中如何查看so崩溃的log
- Android(安卓)开发常用ADB命令集合
- Android(安卓)Studio 常用技巧
- android studio打包apk
- 剪切图片-扩展android 选择图片(从手机照相机或手机图片)