问题如图:
遇到这种情况,一看代码,也没有报错呀,怎么不能运行呢?不要慌!我们一步一步来。
1、查看Logcat日志
在Android Studio中查看Logcat窗口,可以获取应用程序崩溃时的详细错误信息,帮助定位问题所在。
Logcat位置如下:
滑到最下面报错位置:
具体报错如下:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: java.lang.ClassCastException: com.google.android.material.textview.MaterialTextView cannot be cast to android.widget.EditText
这个错误的意思是:试图将一个com.google.android.material.textview.MaterialTextView
对象强制转换为android.widget.EditText
对象,但它们之间并不具有继承关系,因此无法进行强制类型转换。
因为我的MainActivity代码里面有这样一行
我想要声明两个变量来实现我登陆注册的功能。树藤摸瓜,我去查看这个 ty_user 和 et_pas 的声明
这时我才发现,我的声明处代码写错了。
正确顺序应该为:
修改后,完美运行!
后语
其实之前也遇到过这种软件打开闪退的问题, 无非就这么几个办法
-
检查代码:检查应用程序代码,特别是最近更改过的部分,看是否存在错误或异常。
-
清除应用数据:在模拟器或真机的应用信息中清除应用数据,可能有助于解决一些临时问题。
-
重启模拟器或真机:有时候重启模拟器或真机可以解决一些问题。
-
检查权限:确保应用程序所需的权限已正确声明并授予。
-
内存问题:确保应用程序在运行时没有内存泄漏或大量内存占用。
-
重装应用程序:尝试卸载应用程序并重新安装,有时可以解决一些问题。其中权限也是容易忽略的,在调取系统权限的时候,没有声明权限,也是容易出问题 的原因