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

使用Material TabLayout添加条目时Android布局预览消失并抛空指针异常

Material TabLayout添加条目时布局预览崩溃(NullPointerException)解决办法

在使用com.google.android.material:material:1.8.0版本的TabLayout添加条目时,布局预览崩溃并抛出如下NullPointerException:

java.lang.NullPointerException: Cannot invoke "android.content.res.BridgeTypedArray.setTheme(android.content.res.Resources$Theme)" because "ta" is null
    at android.content.res.Resources_Theme_Delegate.obtainStyledAttributes(Resources_Theme_Delegate.java:74)
    at android.content.res.Resources$Theme.obtainStyledAttributes(Resources.java:1631)
    at android.content.Context.obtainStyledAttributes(Context.java:874)
    at android.widget.TextView.setTextAppearance(TextView.java:3965)
    at androidx.appcompat.widget.AppCompatTextView.setTextAppearance(AppCompatTextView.java:216)
    at com.google.android.material.textview.MaterialTextView.setTextAppearance(MaterialTextView.java:106)
    at android.widget.TextView.setTextAppearance(TextView.java:3954)
    at androidx.core.widget.TextViewCompat.setTextAppearance(TextViewCompat.java:289)
    at com.google.android.material.tabs.TabLayout$TabView.updateTab(TabLayout.java:2772)
    at com.google.android.material.tabs.TabLayout$TabView.update(TabLayout.java:2801)
    at com.google.android.material.tabs.TabLayout$TabView.setTab(TabLayout.java:2713)
    at com.google.android.material.tabs.TabLayout.createTabView(TabLayout.java:1673)
    at com.google.android.material.tabs.TabLayout.newTab(TabLayout.java:956)
    at com.google.android.material.tabs.TabLayout.addTabFromItemView(TabLayout.java:824)
    at com.google.android.material.tabs.TabLayout.addViewInternal(TabLayout.java:1730)
    at com.google.android.material.tabs.TabLayout.addView(TabLayout.java:1720)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1131)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1130)
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:1101)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:505)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:353)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:450)
    at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:122)
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:727)
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$9(RenderTask.java:884)
    at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$3.run(RenderExecutor.kt:195)
    at com.android.tools.idea.rendering.RenderExecutor$PriorityRunnable.run(RenderExecutor.kt:293)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.base/java.lang.Thread.run(Unknown Source)

可以尝试以下几种解决方式:

  • 确认App主题继承自MaterialComponents主题:TabLayout依赖Material Design的主题属性,若当前主题未继承自Theme.MaterialComponents.*系列主题,会导致布局预览时无法正确获取样式属性,进而触发空指针。修改res/values/styles.xml中的主题:

    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <!-- 其他主题配置 -->
    </style>
    
  • 升级Material组件版本:1.8.0版本存在已知的布局预览bug,将依赖升级到1.9.0或更高稳定版本即可修复:

    implementation 'com.google.android.material:material:1.9.0'
    
  • 检查TabLayout的自定义样式配置:如果为TabLayout设置了自定义的tabTextAppearance或其他样式属性,确认引用的资源存在且配置正确,避免因无效资源引用导致获取TypedArray时返回null。

  • 清理Android Studio缓存并重启:布局预览缓存异常也可能引发这类问题,通过File -> Invalidate Caches... -> Invalidate and Restart清理缓存后重试。

内容的提问来源于stack exchange,提问作者Coder Odilov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:45:36