TextView的文本未显示在Android Studio xml预览面板中



当我硬编码TextViewandroid:text,而是参考@string/...(这是一种良好的做法(时,Android Studioxml预览面板不会显示引用的文本(请参阅下面的屏幕截图(。运行应用程序时,文本会正确显示在应用程序中,因此引用或引用的文本似乎没有问题。

预览和xml代码的屏幕截图

如果我对文本进行硬编码,它将正确显示在xml预览面板中。

可能出了什么问题?

添加:渲染问题堆栈(点击右上角的红色警告圆圈后产生(:

java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedMethodAccessor392.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at android.view.BridgeInflater.lambda$createViewFromCustomInflater$0(BridgeInflater.java:259)
at android.view.BridgeInflater.createViewFromCustomInflater(BridgeInflater.java:285)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:122)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:934)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:954)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1008)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:309)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:1127)
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:363)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:436)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:121)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:739)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$8(RenderTask.java:895)
at com.android.tools.idea.rendering.RenderExecutor$runAsyncActionWithTimeout$2.run(RenderExecutor.kt:187)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.StringIndexOutOfBoundsException: begin 0, end -1, length 49
at java.base/java.lang.String.checkBoundsBeginEnd(String.java:3319)
at java.base/java.lang.String.substring(String.java:1874)
at com.android.layoutlib.bridge.impl.ResourceHelper.parseHtml(ResourceHelper.java:546)
at android.content.res.BridgeTypedArray.getText(BridgeTypedArray.java:216)
at android.widget.TextView.<init>(TextView.java:1276)
at android.widget.TextView.<init>(TextView.java:1026)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:108)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:103)
at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:201)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:121)
... 26 more

在您的屏幕截图中,在视觉布局部分上方的右上角,有一个带感叹号的非常小的红色圆圈。当您单击它时,它将切换问题面板。

它是红色这一事实表明该布局存在问题(否则它将是灰色的(。它将向您展示Android Studio在呈现活动时遇到的问题,并可能为您提供有关如何解决此问题的更多信息。

最新更新