programingjd / justified

Android TextView or EditText with justified text.
Apache License 2.0
223 stars 48 forks source link

render problem due to java.awt.geom.NoninvertibleTransformException #10

Open EffyCoder opened 6 years ago

EffyCoder commented 6 years ago

Render problem caused while previewing layout . I think its may be due to the reason the justify text work at run-time so it can't render content to screen while previewing. If I am wrong please enlighten me. Following is stack-trace:

java.lang.InternalError: java.awt.geom.NoninvertibleTransformException: Determinant is 0
    at sun.font.GlyphLayout$SDCache.<init>(GlyphLayout.java:237)
    at sun.font.GlyphLayout$SDCache.get(GlyphLayout.java:337)
    at sun.font.GlyphLayout.layout(GlyphLayout.java:386)
    at java.awt.Font.layoutGlyphVector(Font.java:2637)
    at android.graphics.BidiRenderer.render(BidiRenderer.java:229)
    at android.graphics.BidiRenderer.renderScript(BidiRenderer.java:158)
    at android.graphics.BidiRenderer.renderText(BidiRenderer.java:136)
    at android.graphics.BidiRenderer.renderText(BidiRenderer.java:108)
    at android.text.StaticLayout_Delegate.measureText(StaticLayout_Delegate.java:216)
    at android.text.StaticLayout_Delegate.nAddStyleRun(StaticLayout_Delegate.java:95)
    at android.text.StaticLayout.nAddStyleRun(StaticLayout.java)
    at android.text.StaticLayout.access$300(StaticLayout.java:50)
    at android.text.StaticLayout$Builder.addStyleRun(StaticLayout.java:425)
    at android.text.MeasuredText.addStyleRun(MeasuredText.java:186)
    at android.text.MeasuredText.addStyleRun(MeasuredText.java:235)
    at android.text.StaticLayout.generate(StaticLayout.java:814)
    at android.text.DynamicLayout.reflow(DynamicLayout.java:606)
    at android.text.DynamicLayout.access$1700(DynamicLayout.java:45)
    at android.text.DynamicLayout$ChangeWatcher.reflow(DynamicLayout.java:1060)
    at android.text.DynamicLayout$ChangeWatcher.onSpanAdded(DynamicLayout.java:1080)
    at android.text.SpannableStringInternal.sendSpanAdded(SpannableStringInternal.java:399)
    at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:222)
    at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:152)
    at android.text.SpannableString.setSpan(SpannableString.java:46)
    at com.uncopt.android.widget.text.justify.Justify.setupScaleSpans(Justify.java:115)
    at com.uncopt.android.widget.text.justify.JustifiedTextView.onMeasure_Original(JustifiedTextView.java:77)
    at com.uncopt.android.widget.text.justify.JustifiedTextView.onMeasure(JustifiedTextView.java)
    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 android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1308)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.widget.ScrollView.onMeasure(ScrollView.java:350)
    at android.view.View.measure(View.java:22035)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6622)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
    at android.view.View.measure(View.java:22035)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6622)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1514)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:806)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:685)
    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 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)
Caused by: java.awt.geom.NoninvertibleTransformException: Determinant is 0
    at java.awt.geom.AffineTransform.createInverse(AffineTransform.java:2714)
    at sun.font.GlyphLayout$SDCache.<init>(GlyphLayout.java:234)
    ... 60 more