由于某些原因,我正在Android Studio中工作,XML图形编辑器已停止向我显示屏幕布局的图片。该应用程序本身工作正常,我的设备上的布局很好,但我没有在编辑器的计算机屏幕上有它的图片。
编辑器显示错误渲染问题 - 渲染期间引发的异常
在细节中,它向我展示了 java.lang.NullPointerException 的堆栈跟踪,它的目的是尝试刷新布局,但这并不起作用。我尝试刷新,重建,以及其他所有类型的刷新,但没有任何作用。我检查了我曾经做过的其他项目和你的图形是好的,但不是我当前的项目。所以我需要帮助找到问题。
java.lang.NullPointerException
at android.graphics.BidiRenderer.getScriptFont(BidiRenderer.java:290)
at android.graphics.BidiRenderer.getScriptRuns(BidiRenderer.java:280)
at android.graphics.BidiRenderer.renderText(BidiRenderer.java:133)
at android.graphics.BidiRenderer.renderText(BidiRenderer.java:108)
at android.graphics.Paint_Delegate.measureText(Paint_Delegate.java:1310)
at android.graphics.Paint_Delegate.nGetTextAdvances(Paint_Delegate.java:972)
at android.graphics.Paint_Delegate.nGetRunAdvance(Paint_Delegate.java:1147)
at android.graphics.Paint.nGetRunAdvance(Paint.java)
at android.graphics.Paint.getRunAdvance(Paint.java:2729)
at android.text.TextLine.getRunAdvance(TextLine.java:729)
at android.text.TextLine.handleText(TextLine.java:778)
at android.text.TextLine.handleRun(TextLine.java:1018)
at android.text.TextLine.measureRun(TextLine.java:417)
at android.text.TextLine.measure(TextLine.java:310)
at android.text.TextLine.metrics(TextLine.java:281)
at android.text.Layout.measurePara(Layout.java:1966)
at android.text.Layout.getDesiredWidthWithLimit(Layout.java:186)
at android.widget.TextView.onMeasure(TextView.java:8168)
at android.view.View.measure(View.java:22035)
at android.widget.Toolbar.measureChildCollapseMargins(Toolbar.java:1548)
at android.widget.Toolbar.onMeasure(Toolbar.java:1662)
at android.view.View.measure(View.java:22035)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6622)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.widget.ActionBarContainer.onMeasure(ActionBarContainer.java:291)
at android.view.View.measure(View.java:22035)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6622)
at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:378)
at android.view.View.measure(View.java:22035)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:22035)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.measureView(RenderSessionImpl.java:590)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:343)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:547)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:681)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
答案 0 :(得分:0)
在xml工具栏中,您可以找到刷新按钮,这样它就会通知您的xml中是否有任何警告。 如果您使用的自定义布局然后显示渲染问题..
答案 1 :(得分:0)
让我们看一下错误日志:
java.lang.NullPointerException
at android.graphics.BidiRenderer.getScriptFont(BidiRenderer.java:290)
我认为您需要像库模块一样克隆项目,然后将@Nullable添加到此方法以避免异常。
答案 2 :(得分:0)
如果视图在运行时呈现正常但您只在布局编辑器中显示预览时出现问题,则应使用 isInEditMode()方法,如果在布局中呈现视图,则不应执行不受支持的操作编辑
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (!isInEditMode()) {
//custom logic
}
}
答案 3 :(得分:0)
我很遗憾地说你的答案根本没有帮助我。对我来说,解决方案是回到我的一个备份视觉,当编辑显示仍然有效时,从那里开始。我发现当在主题编辑器中更改太多参数(三个)时会导致阻止XML编辑器显示布局图片的错误。
多年前我第一次开始学习编程时学到的一件事就是没有多少备份,这是我很高兴我向老师列出的时间之一。