You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 14 Pixel设备TimePickerDialog调用崩溃问题求助

解决方案

1. 强制TimePicker使用时钟模式(规避Spinner模式系统bug)

崩溃根源是Android 14 3月安全更新后,Spinner样式的TimePicker内部出现EditText空指针问题。修改插件代码,强制TimePicker切换到传统时钟模式即可避开该bug:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
    timeDialog.getWindow().getDecorView().post(new Runnable() {
        @Override
        public void run() {
            TimePicker timePicker = timeDialog.findViewById(android.R.id.timePicker);
            if (timePicker != null) {
                try {
                    // 通过反射设置TimePicker为时钟模式(MODE_CLOCK)
                    Method setModeMethod = TimePicker.class.getMethod("setMode", int.class);
                    setModeMethod.invoke(timePicker, 1); // 1对应MODE_CLOCK,0为MODE_SPINNER
                } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
                    e.printStackTrace();
                }
            }
        }
    });
}

2. 替换为自定义时间选择对话框实现

如果反射方法受限,可以放弃系统TimePickerDialog,改用第三方时间选择库或自行编写简单的时间选择对话框,完全避开系统存在bug的Spinner模式控件。

3. 临时修复:拦截焦点变化避免空指针

针对崩溃链中的焦点清空逻辑,可以尝试手动拦截TimePicker内部控件的焦点变化,避免触发空指针:

timeDialog.getWindow().getDecorView().post(new Runnable() {
    @Override
    public void run() {
        TimePicker timePicker = timeDialog.findViewById(android.R.id.timePicker);
        if (timePicker != null) {
            // 遍历内部控件,禁用焦点变化触发的空指针路径
            ViewGroup root = (ViewGroup) timePicker.getChildAt(0);
            traverseViewGroup(root);
        }
    }

    private void traverseViewGroup(ViewGroup group) {
        for (int i = 0; i < group.getChildCount(); i++) {
            View child = group.getChildAt(i);
            if (child instanceof NumberPicker) {
                ((NumberPicker) child).setOnFocusChangeListener(null);
            } else if (child instanceof ViewGroup) {
                traverseViewGroup((ViewGroup) child);
            }
        }
    }
});

4. 向Android官方反馈问题

尽管当前Google问题跟踪器暂无相关记录,仍可提交包含崩溃日志、复现步骤的新issue,推动官方修复该系统级bug。


内容的提问来源于stack exchange,提问作者Jon Schlossberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:24:54