记一次部分机型APP打开就Crash的问题

额..最近在帮朋友做一个APP
刚刚做完,自己的测试机:小米5,华为P6都好好的,但是朋友那边部分手机(三星s7+,小米4)安装完打开APP就Crash掉了.

因为分隔两地,他又不懂Android,虽然我也想直接让他把手机连上adb,直接在IDE里面看错误日志,但是这种事情只能想想就好…

因为集成的Bugly不知道怎么回事,测试的日志还好好的,但是部分机型的crash日志就是不上传,最后想到使用Testin进行测试…

结果真是辣眼睛,我都要怀疑我做的是不是一个假的APP:
这里写图片描述
这里写图片描述

发现crash基本都集中在打开app时

Java Runtime error: java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo, Process: com.kusofan.demo

百度一波这个报错就知道是什么原因了…

因为Instant Run啊….

关掉Instant Run,clean project,rebuild,就好了…

还是太年轻,之前都是提供测试的都是签名打的release,都没试过直接给debug包…
要不下次试试看会不会被打死.

### 如何在 Uni-app 中实现对蓝牙开关状态的监听 在 Uni-app 的开发环境中,可以通过调用 `uni.onBluetoothAdapterStateChange` 方法来监听蓝牙模块的状态变化。此方法允许开发者捕获蓝牙适配器的启用或禁用事件,并据此执行相应的逻辑操作。 以下是具体的实现方式: #### 使用 `uni.onBluetoothAdapterStateChange` 通过该 API 可以实时获取蓝牙适配器的状态变更通知。当用户的设备蓝牙被打开或者关闭时,会触发回调函数并返回当前蓝牙适配器的状态对象[^1]。 ```javascript // 在 App.vue 或页面中初始化蓝牙状态监听 export default { onLaunch: function () { // 初始化蓝牙适配器状态监听 uni.onBluetoothAdapterStateChange(function (res) { console.log('蓝牙适配器状态已改变', res); if (res.available && res.discovering) { console.log('蓝牙已被开启并且正在扫描'); } else if (!res.available) { console.log('蓝牙已被关闭'); } }); // 如果需要主动检测一次初始状态,可以调用以下方法 uni.getBluetoothAdapterState({ success(res) { console.log('当前蓝牙适配器状态:', res); }, fail(err) { console.error('获取蓝牙适配器状态失败:', err); } }); } } ``` 上述代码片段展示了如何注册一个全局的蓝牙适配器状态监听器。每当蓝牙开关发生变化时,都会触发回调函数并将最新的状态传递给开发者。其中,`available` 属性表示蓝牙模块是否可用;而 `discovering` 则表明当前是否有正在进行中的蓝牙设备搜索过程[^2]。 需要注意的是,在 Android 平台上可能存在某些特殊场景下的兼容性问题。如果发现部分机型未能正常响应这些事件,则可能需要额外处理权限请求或其他平台特定配置项[^3]。 对于更复杂的项目需求来说,建议将蓝牙功能封装成独立的服务类或者工具库形式以便于管理和维护。例如利用 Vue 插件机制创建自定义 Hook 来集中管理所有与蓝牙相关的交互行为。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值