uni-app HB3.4.14 getSystemInfo 真机调试报错

发布于 1周前 作者 yibo5220 来自 Uni-App

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.getSystemInfouni.getSystemInfoSync 在APP真机调试不报错, 但升级3.4.14后,在APP真机调试却报错

开发环境 版本号 项目创建方式
Windows Windows 11 专业版 21H2 -

.log

相关链接:


9 回复

我以为这个api不能用了


3.4.15 已修复

已反馈给相关人员排查,已加分感谢反馈!

你用的哪个型号的google手机。 我这边 google 4a 复现不来

Pixel 25.01080x1920 xhdpi Android 9.0 x86 64

同BUG,手上测试机 realme Q的BUG,不光是getSystemInfo,所有uni下面的方法只要调用都报这个错误

所有?你都调哪些 api 报这个错误?

回复 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);
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!