1***@qq.com
1***@qq.com
  • 发布:2020-02-19 10:55
  • 更新:2020-05-15 13:22
  • 阅读:1015

【报Bug】下面这段代码会导致闪退!

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]```javascript
onReady() {
//获取系统信息
uni.getSystemInfo({
success: (res)=> {
canvasw = res.windowWidth;
canvash = res.screenHeight;
console.log(res);
console.log(canvasw);
console.log(res);
setTimeout(() =>{
plus.screen.lockOrientation('landscape-primary');
_that = this;
this.w = canvash;
this.h = canvasw;
content = wx.createCanvasContext('firstCanvas');
//获得Canvas的上下文
//设置线的颜色
content.setStrokeStyle("#000")
//设置线的宽度
content.setLineWidth(5)
//设置线两端端点样式更加圆润
content.setLineCap('round')
//设置两条线连接处更加圆润
content.setLineJoin('round');
},500)
}
})
},



## 重现步骤  
我要做手写签名功能,app进入页面需要设置横屏,然后获取可用区域宽高,这种情况下有很大几率闪退!求助  

[步骤]  

[结果]  

[期望]  

[如果语言难以表述清晰,拍一个视频或截图,有图有真相]  

## IDE运行环境说明  

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]  

[IDE版本号]  

[windows版本号]  

[mac版本号]  

## uni-app运行环境说明  

[运行端是h5或app或某个小程序?]  

[运行端版本号]  

[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]  

[编译模式是老模板模式还是新的自定义组件模式?]  

## App运行环境说明  

[Android版本号]  

[iOS版本号]  

[手机型号]  

[模拟器型号]  

## 附件  

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]  

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]  

[App安装包或H5地址]  

[可重现代码片段]  

## 联系方式  

[QQ]  
2020-02-19 10:55 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

使用你的代码测试未能复现,可以上传一份最精简的能复现问题的demo,另外提供以下HBuilderX版本和手机型号

  • 1***@qq.com (作者)

    我单独的demo也不会闪退,在项目中会闪退,会不会是内存不足之类导致的?操作就是跳转签名页面然后闪退!

    2020-02-19 16:59

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 可以把你项目的代码一块一块删掉排查一下,笨方法但是好使

    2020-02-19 17:03

1***@qq.com

1***@qq.com (作者) - 我是小提莫

旋转功能结束,闪退!uni.getSystemInfo({})应该是这个导致的。```javascript
onReady() {
plus.screen.lockOrientation('landscape-primary');
setTimeout(()=>{
//获取系统信息
uni.getSystemInfo({
success: (res)=> {
// 旋转之后屏幕宽度=状态栏高度+原生导航栏高度+可使用窗口高度
console.log(res);
canvasw = res.windowWidth;
canvash = res.windowHeight;

                    console.log(canvasw);  
                    console.log(canvash);  

                    setTimeout(() =>{  

                        _that = this;  
                        this.w = canvasw;  
                        this.h = canvash;  
                        content = wx.createCanvasContext('firstCanvas');  
                        //获得Canvas的上下文  
                        //设置线的颜色  
                        content.setStrokeStyle("#000")  
                        //设置线的宽度  
                        content.setLineWidth(5)  
                        //设置线两端端点样式更加圆润  
                        content.setLineCap('round')  
                        //设置两条线连接处更加圆润  
                        content.setLineJoin('round');  
                        uni.hideLoading()  
                    },600)  
                }  
            })  
        },800)  
    },
1***@qq.com

1***@qq.com (作者) - 我是小提莫

是第一次会闪退,闪退之后再次进入app就不闪退了!!

  • 睡着就睡着了

    哇 我跟你一摸一样的问题 今天刚遇见 排查了一上午了

    2020-05-15 13:14

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

提供一下手机型号,HBuilderX版本,这边无法复现你的问题,你可以把你的项目发上来我来排查一下

  • 1***@qq.com (作者)

    使用2.5.11.20200212-alpha这个版本的编辑器不会闪退,请问更新到正式版是100%覆盖吗

    2020-02-20 09:47

  • DCloud_uniCloud_WYQ

    回复 1***@qq.com: 正式版就是由比较稳定的alpha版本升级来的

    2020-02-20 13:55

睡着就睡着了

睡着就睡着了

刚刚更新到2.6.16 这个问题就没有了,但是更新了还要解决很多v3兼容性问题

该问题目前已经被锁定, 无法添加新回复