概述
修改下拉状态栏点击屏幕录制后出现ANR:
报错信息为
rocess: com.android.systemui, PID: 5593
// java.lang.NullPointerException: Attempt to read from field 'int com.android.wm.shell.common.DisplayLayout.mUiMode' on a null object reference
// at com.android.wm.shell.common.DisplayLayout.set(DisplayLayout.java:145)
// at com.android.wm.shell.common.DisplayLayout.<init>(DisplayLayout.java:140)
为,虽然这个systemui报错但是systemui找不到这个文件,是在frameworks下面
override/frameworks/base/libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java
有四个个构造方法,其中有两个是类似的,都是设置相关DisplayLayout配置的,就是初始化
出错的是一个参数的
DisplayLayout(DisplayLayout dl) {
这个dl就是null,所以下面这一句set(dl);导致这个方法失效报错。
把这句注释掉不用了就行,这个方法本来就是类似下面的init的,本来官方给的注解就是sets this DisplayLayout to a copy of another on.
那就不要这个copy了
另一个构造方法两个个参数
DisplayLayout(@NonNull Context context, @NonNull Display rawDisplay) {
这里面也有个
init(info, context.getResources(), hasNavigationBar(info, context, displayId),
hasStatusBar(displayId));
这个方法更正规标准,测得功能一切正常。
禁用Hotspot & tethering菜单下的 “Wi-Fi hotspot:
不是删除这个菜单而是禁用,就是点不了,就跟下面那个USB一样,在没有连接是灰色禁用点不了
、override/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
displayPreference方法里直接加一句
mPreference.setEnabled(false);
类似src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
这里面refresh方法里
if (!connected || dataRole != DATA_ROLE_DEVICE) {
mProfilesContainer.setEnabled(false);
} else {
// Functions are only available in device mode
mProfilesContainer.setEnabled(true);
}
默认系统语言为英文:
改个宏控,在ProjectConfig.mk里
FREEME_PRODUCT_LOCALES_DEFAULT = en_US
原来是中文zh_CN
最后
以上就是能干水杯为你收集整理的修改下拉状态栏点击屏幕录制后出现ANR。禁用Hotspot & tethering菜单下的 “Wi-Fi hotspot。默认系统语言为英文。的全部内容,希望文章能够帮你解决修改下拉状态栏点击屏幕录制后出现ANR。禁用Hotspot & tethering菜单下的 “Wi-Fi hotspot。默认系统语言为英文。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复