2***@qq.com
2***@qq.com
  • 发布:2022-06-24 16:05
  • 更新:2024-05-24 16:05
  • 阅读:1428

【报Bug】plus.android.runtimeMainActivity() 页面白屏

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win7

HBuilderX类型: 正式

HBuilderX版本号: 3.4.17

手机系统: Android

手机系统版本号: Android 7.1.1

手机厂商: 互视达

手机机型: 工业一体机

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
``` let main = plus.android.runtimeMainActivity();  
            let sdRoot1 = main.getFilesDir();  
            let filesOne = plus.android.invoke(sdRoot1, "listFiles");  
            let lenOne = filesOne.length;  
            for (let i = 0; i < lenOne; i++) {  
            let filePath = '' + filesOne[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径  
            plus.io.resolveLocalFileSystemURL(filePath, function(entry) {  
                if (entry.isDirectory) {  
                    entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录  
                    // console.log('清理文件数据完成')  
                }, function(e) {  
                    console.log(e.message)  
                });  
                } else {  
                    entry.remove(function(entry) { //递归删除其下的所有文件及子目录  
                    // console.log('清理文件数据完成')  
                }, function(e) {  
                    console.log(e.message)  
                });  
                }  
            }, function(e) {  
                    console.log('清理文件数据失败')  
                });  
            };    ```

操作步骤:

复制代码到onShow中执行

预期结果:

页面正常运行

实际结果:

页面白屏,之后其他功能也无法使用

bug描述:

以下代码,真机调试可以运行,打包安装后运行出现白屏,之后其他功能都无法使用


                let sdRoot1 = main.getFilesDir();  
                let filesOne = plus.android.invoke(sdRoot1, "listFiles");  
                let lenOne = filesOne.length;  
                for (let i = 0; i < lenOne; i++) {  
                let filePath = '' + filesOne[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径  
                plus.io.resolveLocalFileSystemURL(filePath, function(entry) {  
                    if (entry.isDirectory) {  
                        entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录  
                        // console.log('清理文件数据完成')  
                    }, function(e) {  
                        console.log(e.message)  
                    });  
                    } else {  
                        entry.remove(function(entry) { //递归删除其下的所有文件及子目录  
                        // console.log('清理文件数据完成')  
                    }, function(e) {  
                        console.log(e.message)  
                    });  
                    }  
                }, function(e) {  
                        console.log('清理文件数据失败')  
                    });  
                };    ```  
2022-06-24 16:05 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

加个try

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

    catch 无错误信息返回

    2022-06-27 10:47

DCloud_Android_ST

DCloud_Android_ST

应该是异常了 加上try catch捕获取看看

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

    catch 无错误信息返回

    2022-06-27 10:47

  • DCloud_Android_ST

    回复 2***@qq.com: 那你能确定下 这段代码是否正常执行完毕呢

    2022-06-27 10:54

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

    回复 DCloud_Android_ST: 主要是真机调试是正常的

    2022-06-27 11:42

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

    回复 DCloud_Android_ST: 打包后try里 plus.android.runtimeMainActivity() 这句后就不执行了

    2022-06-27 11:45

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

    回复 2***@qq.com: 直接走catch,self.text 得到 {}

    2022-06-27 11:46

  • DCloud_Android_ST

    回复 2***@qq.com: 你打包的appid发下 我这边测试下看看异常

    2022-06-27 12:38

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

    最新的附件上传了

    2022-06-28 10:20

2***@qq.com

2***@qq.com (作者)

加上try catch 后,页面依然白屏,没有catch到错误,


                 try {  
                      plus.cache.clear()  
                     let main = plus.android.runtimeMainActivity();  
                     let sdRoot1 = main.getFilesDir();  
                     let filesOne = plus.android.invoke(sdRoot1, "listFiles");  
                     let lenOne = filesOne.length;  
                     for (let i = 0; i < lenOne; i++) {  
                     let filePath = '' + filesOne[i]; // 没有找到合适的方法获取路径,这样写可以转成文件路径  
                        plus.io.resolveLocalFileSystemURL(filePath, function(entry) {  
                            if (entry.isDirectory) {  
                                entry.removeRecursively(function(entry) { //递归删除其下的所有文件及子目录  
                                // console.log('清理文件数据完成')  
                            }, function(e) {  
                                console.log(e.message)  
                            });  
                            } else {  
                                entry.remove(function(entry) { //递归删除其下的所有文件及子目录  
                                // console.log('清理文件数据完成')  
                            }, function(e) {  
                                console.log(e.message)  
                            });  
                            }  
                        }, function(e) {  
                            console.log('清理文件数据失败')  
                        });  
                     };   
                 }catch (e){  
                     let t = JSON.stringify(e)  
                     self.text = t  
                     alert(t)  
                 }```
  • 2***@qq.com (作者)

    catch 无错误信息返回

    2022-06-27 10:47

2***@qq.com

2***@qq.com (作者)

测试发现,点击到第二页触发默认方法后, 也不报错,app不再执行

1***@qq.com

1***@qq.com

楼主, 解决了吗?
hbx3.6.4 又出现了

w***@sina.com

w***@sina.com

main.js 调用 plus.android.runtimeMainActivity() 白屏

都广野

都广野

最后有解决吗 我也遇到了这个问题

要回复问题请先登录注册