Android Studio 3.6布局渲染异常求助:TextClock空指针问题
解决Android Studio 3.6升级后TextClock布局渲染空指针问题
最近不少开发者升级Android Studio到3.6版本后遇到了布局渲染的问题,你描述的情况正是其中一个典型案例——哪怕是新建项目只放一个TextClock,布局编辑器都会抛出NullPointerException并提示Render problem: Exception raised during rendering。
问题重现细节
- 环境:Android Studio 3.6(从3.5升级而来)
- 触发条件:布局中包含
TextClock控件,甚至新建空白项目仅添加该控件也会报错 - 报错堆栈:
java.lang.NullPointerException at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2263) at android.widget.TextClock.registerObserver(TextClock.java:626) at android.widget.TextClock.onAttachedToWindow(TextClock.java:545) at android.view.View.dispatchAttachedToWindow(View.java:19575) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437) at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:42) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:335) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:396) at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:209) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:608) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$6(RenderTask.java:734) at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
问题根源
这是Android Studio 3.6版本的已知官方bug,问题出在布局渲染库处理TextClock的ContentObserver注册流程时,出现了未预期的空指针情况。
可行的解决/缓解方案
- 临时替代控件:如果项目对时间显示的需求不依赖
TextClock的特殊功能,可以暂时用TextView替代,通过代码手动更新时间文本 - 降级IDE版本:回退到Android Studio 3.5版本,这个版本没有这个问题,等待官方发布修复补丁后再升级
- 跟踪修复进度:关注官方的issue跟踪渠道,获取该bug的修复状态和版本更新通知
内容的提问来源于stack exchange,提问作者Gome
相关产品推荐
相关产品推荐

