[Perf] App.onLaunch took 52ms TypeError: Cannot read property 'openid' of null at Function.success (http://127.0.0.1:14113/appservice/app.js:28:65) at <api cloud.callFunction success callback function> at Function.<anonymous> (http://127.0.0.1:14113/appservice/__dev__/WAServiceMainContext.js?t=wechat&s=1686439405694&v=2.32.1:1:160379) at <anonymous>:1:164551 at F (<anonymous>:1:164398) at <anonymous>:1:164542 at <anonymous>:1:165173 at j (<anonymous>:1:165177) at <anonymous>:1:201738
时间: 2024-03-28 15:38:55 浏览: 168
这段错误信息中的问题与之前类似,是因为在尝试读取一个为 null 的对象的 openid 属性。建议你检查一下代码,确认该对象是否已经被正确地初始化了。你可以使用可选链操作符(?.)来避免出现类似的错误,例如:`const openid = obj?.openid`。或者,在读取对象属性前,先检查一下该对象是否为 null,例如:
```
if (obj !== null && obj.openid) {
// 这里执行读取 openid 属性的逻辑
}
```
另外,你也可以在全局的 `globalData` 对象中定义一个默认的 `openid` 值,例如:
```
App({
globalData: {
openid: null,
user: {}
},
onLaunch: function () {
// ...
}
})
```
这样,在其他地方使用 `getApp().globalData.openid` 时,如果 `openid` 还没有被初始化,就会返回 `null`,而不是抛出 TypeError 异常。
相关问题
E/Perf: getFolderSize() : Exception_1 = java.lang.NullPointerException: Attempt to get length of null array
这个错误通常表示你的代码中有一个数组没有被正确初始化,因此它的长度为 null,无法获取其长度。你可以检查你的代码并确保所有的数组都被正确初始化。你还可以尝试使用断言来确保数组不为 null。例如:
```java
assert myArray != null;
int length = myArray.length;
```
这样,如果 myArray 为 null,代码就会抛出 AssertionError,而不是 NullPointerException。
./configure: error: the Google perftools module requires the Google perftools 怎么解决
这个错误提示表明 nginx 在编译时没有找到 Google perftools,需要手动指定 perftools 的安装路径。
你可以按照以下步骤重新编译 nginx:
1. 下载 nginx 的源码包
打开 nginx 的官网 https://nginx.org/en/download.html,找到最新版本的源码包,复制其下载链接。然后在终端中使用 wget 命令下载源码包:
```
wget https://nginx.org/download/nginx-1.24.0.tar.gz
```
2. 解压源码包
使用 tar 命令解压刚才下载的源码包:
```
tar -zxvf nginx-1.24.0.tar.gz
```
3. 下载 perftools 的源码包
打开 https://github.com/gperftools/gperftools/releases 页面,找到最新版本的 perftools 的源码压缩包,复制其下载链接。然后在终端中使用 wget 命令下载压缩包:
```
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9.1/gperftools-2.9.1.tar.gz
```
4. 解压 perftools 源码包
使用 tar 命令解压刚才下载的 perftools 源码包:
```
tar -zxvf gperftools-2.9.1.tar.gz
```
5. 编译安装 perftools
进入解压后的 perftools 目录,执行以下命令编译和安装:
```
cd gperftools-2.9.1
./configure --prefix=/usr/local/gperftools
make
sudo make install
```
6. 编译 nginx
进入解压后的 nginx 目录,执行以下命令编译和安装:
```
cd nginx-1.24.0
./configure --with-google_perftools_module --with-perl_modules_path=/usr/lib/perl5/5.26.1 --with-http_ssl_module --prefix=/usr/local/nginx --with-openssl=/usr/local/openssl --with-openssl-opt=enable-tls1_3 --with-pcre=../pcre-8.44 --with-zlib=../zlib-1.2.11 --add-module=../ngx_cache_purge-2.5 --add-module=../headers-more-nginx-module-0.33 --add-module=../nginx-http-concat-master --add-module=../nginx-http-sysguard --add-module=../nginx-module-vts --add-module=../nginx-rtmp-module-dev --with-debug --with-cc-opt='-O2 -g' --with-ld-opt="-Wl,-rpath,/usr/local/gperftools/lib"
make
sudo make install
```
注意,上面的 `--with-ld-opt` 选项需要指定 perftools 的安装路径。如果你安装 perftools 的路径不同,需要修改该选项的值。
7. 启动 nginx
执行以下命令启动 nginx:
```
sudo /usr/local/nginx/sbin/nginx
```
现在,你应该可以使用 perftools 的功能了。
阅读全文