uni-app HB3.4.14 getSystemInfo 真机调试报错
uni-app HB3.4.14 getSystemInfo 真机调试报错
示例代码:
<script>
import Vue from 'vue'
import store from '@/store/index.js'
export default {
onLaunch: async () => {
console.log('App Launch')
uni.getSystemInfo({
success: function(res) {
console.log(res)
}
});
// const info = await uni.getSystemInfoSync();
},
onShow: () => {
console.log('App Show');
},
onHide: () => {
console.log('App Hide')
}
}
</script>
<style lang="scss">
</style>
操作步骤:
直接真机调试
预期结果:
如附件图一,正常显示系统信息
实际结果:
如附件图二,提示报错
bug描述:
3.4.7 使用 uni.getSystemInfo
和 uni.getSystemInfoSync
在APP真机调试不报错,
但升级3.4.14后,在APP真机调试却报错
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | Windows 11 专业版 21H2 | - |
相关链接:
我以为这个api不能用了
3.4.15 已修复
已反馈给相关人员排查,已加分感谢反馈!
你用的哪个型号的google手机。 我这边 google 4a 复现不来
Pixel 25.01080x1920 xhdpi Android 9.0 x86 64
同BUG,手上测试机 realme Q的BUG,不光是getSystemInfo,所有uni下面的方法只要调用都报这个错误
回复 DCloud_UNI_LXH: 抱歉,不严谨了,我重新尝试了下,确实是只有getSystemInfoSync和getSystemInfo这两个方法会报这个错误,其他方法正常的
在使用 uni-app
进行真机调试时,如果遇到 getSystemInfo
报错,可能是由于以下几个原因导致的。以下是一些常见的排查步骤和解决方案:
1. 检查 uni.getSystemInfo
的调用方式
确保你正确调用了 uni.getSystemInfo
方法。示例代码如下:
uni.getSystemInfo({
success: (res) => {
console.log(res);
},
fail: (err) => {
console.error(err);
}
});
如果调用方式不正确,可能会导致报错。
2. 检查 uni-app
版本
你提到使用的是 HB3.4.14
,请确保你的 uni-app
版本是最新的,或者至少是稳定的版本。某些旧版本可能存在兼容性问题。
你可以通过以下命令更新 uni-app
:
npm update [@dcloudio](/user/dcloudio)/uni-app
3. 检查真机环境
确保你的真机环境支持 uni.getSystemInfo
方法。某些低版本的手机或操作系统可能不支持某些 API。
你可以尝试在不同的设备上运行,看看是否所有设备都会报错。
4. 检查权限
某些系统信息可能需要特定的权限才能获取。确保你的应用已经获取了必要的权限。
在 manifest.json
中检查并添加必要的权限:
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于获取系统信息"
}
}
}
5. 调试模式
在真机调试时,确保开启了调试模式。你可以在 HBuilderX
中点击 运行
-> 运行到手机或模拟器
-> 真机运行
,并确保开启了调试模式。
6. 查看错误日志
如果以上步骤都无法解决问题,可以查看详细的错误日志。在 HBuilderX
的控制台中查看错误信息,或者在真机上使用 adb logcat
查看详细的日志信息。
7. 使用 try-catch
捕获异常
在调用 uni.getSystemInfo
时,使用 try-catch
捕获异常,以便更好地定位问题:
try {
uni.getSystemInfo({
success: (res) => {
console.log(res);
},
fail: (err) => {
console.error(err);
}
});
} catch (e) {
console.error('getSystemInfo error:', e);
}