2.5 KiB
2.5 KiB
应用闪退问题排查指南
常见闪退原因
1. 布局文件问题
- 检查
app/src/main/res/layout/activity_main.xml是否存在 - 检查所有 ID 是否匹配
2. WebView 初始化问题
- WebView 在某些设备上需要特殊处理
- 已添加异常处理和空值检查
3. 网络权限问题
- 确保 AndroidManifest.xml 中有网络权限
- 确保
usesCleartextTraffic="true"已设置
4. 资源文件问题
- 检查图标文件是否存在
- 检查字符串资源是否存在
调试方法
方法一:查看 Logcat 日志
- 在 Android Studio 中打开 Logcat
- 过滤级别选择 Error
- 运行应用,查看错误信息
- 常见的错误信息:
NullPointerException- 空指针异常ClassNotFoundException- 类找不到Resources$NotFoundException- 资源找不到
方法二:使用 adb logcat
adb logcat | findstr "AndroidRuntime"
方法三:检查崩溃报告
在 Android Studio 的 Logcat 中查找:
FATAL EXCEPTION: main
已修复的问题
- ✅ 添加了异常处理(try-catch)
- ✅ 添加了空值检查
- ✅ 添加了视图初始化验证
- ✅ 添加了 WebView 错误处理
- ✅ 延迟了 URL 加载(避免模拟器网络问题)
可能的问题和解决方案
问题1:模拟器无法访问局域网IP
原因:模拟器运行在虚拟网络中,无法直接访问主机的局域网IP
解决方案:
- 使用
10.0.2.2代替127.0.0.1或localhost来访问主机 - 或者使用真实设备测试
- 或者配置端口转发:
adb reverse tcp:8080 tcp:8080
问题2:WebView 加载失败导致闪退
已修复:添加了错误处理,加载失败时显示错误信息而不是闪退
问题3:资源文件缺失
检查:
app/src/main/res/mipmap-*/ic_launcher.png是否存在app/src/main/res/values/strings.xml是否存在
测试步骤
-
清理并重新构建:
gradlew.bat clean gradlew.bat assembleDebug -
卸载旧版本:
adb uninstall com.xinli.app -
安装新版本:
adb install app\build\outputs\apk\debug\app-debug.apk -
查看日志:
adb logcat -c # 清空日志 adb logcat | findstr "xinli"
如果仍然闪退
请提供以下信息:
- Logcat 中的完整错误堆栈
- Android 版本
- 设备类型(模拟器/真机)
- 闪退发生的时机(启动时/点击按钮时/加载网页时)