macOS Catalina(10.15.6)文件大量变动后mds/mds_stores/mdworker引发系统卡顿

最近在执行bash gradlew clean build之后,macOS Catalina(10.15.6)系统处于长时间的卡顿状态。尽管已经编译结束了,依旧要持续非常长的一段时间才能恢复顺畅。

在执行top命令之后,发现进程mds,mds_stores 持续维持在高负荷运行状态,基本上把CPU跟磁盘IO全部占用。

网上搜索了一下,这两个服务是macOS Catalina(10.15.6)系统的索引服务,由于编译过程中瞬间删除,又重新产生大量的临时文件,数量在几万个,大小达到若干GB。索引服务尝试对这些文件进行索引,引起极大的系统开销。

解决方法就是临时或者永久关闭索引服务

重新打开的话,执行

参考连接


Mac系统 mds、mds_stores、mdworker 占cpu很高,以及这些进程是干啥的

Robolectric单元测试报错“ReflectionHelpers.java java.lang.IllegalAccessException at UnsafeFieldAccessorImpl.java”

macOS Catalina 10.15.6,使用HomeBrew执行brew install java,安装了目前最新的openjdk-14.0.1之后,执行bash gradlew clean build,报告如下错误信息:

目前测试发现,升级Robolectric版本并不能解决问题。其实对于Android Studio来说,完全可以指定Android Studio自带的JDK进行编译。

关闭SHELL,之后重新打开新的SHELL,重新执行编译命令即可。

建议Android版本发布使用的JDK就是Android Studio自带的JDK,这样可以保证应用的稳定性,减少由于JDK差异导致的各种问题。

当前建议的版本

参考链接


Robolectric单元测试报错“org.mockito.exceptions.base.MockitoException Caused by: java.lang.ClassCastException”

使用Robolectric进行Android代码测试的时候,随着测试用例的增多,可能会报告如下错误(Windows下常见):

原因为Mockto使用了编译缓存导致加载类的时候出现异常。解决方法是禁止Mockto缓存测试类的代码。

Android测试项目的src/test/java下创建一个名为org.mockito.configuration的包,然后实现一个名为MockitoConfiguration.java的类,如下:

这样当再次执行测试用例的时候,就已经不使用缓存了。

参考链接


java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

全新安装的macOS Catalina 10.15.6,使用HomeBrew执行brew install java,安装了目前最新的openjdk-14.0.1之后,执行bash gradlew clean build,报告如下错误信息:

修改

就行了 。

出现原因是这个版本的gradlemacOS版本支持的不是很完善(其实是JDK的版本适配问题)。Windows版本打包倒是没有问题(Windowsopenjdk-14.0.1一样有问题)。

参考链接


java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Ja【已解决】

fatal: could not read Username for 'https://github.com': terminal prompts disabled

最近更新HomeBrew的时候,一直报错,如下:

执行

执行如下命令即可:

参考链接


Git Error: Could could not read Username for 'https://github.com': terminal prompts disabled

WordPress中判断用户是不是管理员

自定义WordPress插件的时候,需要判断当前用户的角色是不是网站管理员,如果是管理员的情况下才允许使用插件功能,否则禁止使用。

对于自定义主题的情况,可以使用如下代码:

对于自定义插件的情况,可以使用如下代码:

更简单的代码如下:

参考连接


ubuntu 18.04系统报错ModuleNotFoundError: No module named 'pip._internal'

重新安装的ubuntu 18.04系统上初次安装python3-pip之后,执行升级命令,出现如下错误信息:

解决方法为重新升级安装一次 pip,如下:

参考链接


No module named 'pip._internal.cli.main'

Error: Cask 'java7' is unreadable: undefined method `undent' for #

今天在执行brew upgrade的时候出现如下错误:

原因为某次更新之后,配置文件增加了某些不必要的字段。更要命的是,不能执行卸载命令来删除出问题的安装包。解决方法为删除这个字段。

方案如下:

参考链接


undefined method `undent' #49716