HTextView
HTextView copied to clipboard
Fatal Exception: java.lang.NullPointerException
In some of the users in my application throws Fatal Exception: java.lang.NullPointerException. This exception happens in Android 6, 7, 8. This is statistics from Crashlytics. If you need some information from Crashlytics I can share with you.
This is exception stack trace from Crashlytics:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'float android.text.Layout.getLineLeft(int)' on a null object reference
at com.hanks.htextview.scale.ScaleText.drawFrame(ScaleText.java:98)
at com.hanks.htextview.base.HText.onDraw(HText.java:114)
at com.hanks.htextview.scale.ScaleTextView.onDraw(ScaleTextView.java:44)
at android.view.View.draw(View.java:17214)
at android.view.View.updateDisplayListIfDirty(View.java:16196)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.updateDisplayListIfDirty(View.java:16191)
at android.view.View.draw(View.java:16980)
at android.view.ViewGroup.drawChild(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3515)
at android.view.View.draw(View.java:17217)
at com.android.internal.policy.DecorView.draw(DecorView.java:757)
at android.view.View.updateDisplayListIfDirty(View.java:16196)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:648)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:654)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:762)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2844)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2652)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2259)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1298)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6437)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:876)
at android.view.Choreographer.doCallbacks(Choreographer.java:688)
at android.view.Choreographer.doFrame(Choreographer.java:623)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:862)
at android.os.Handler.handleCallback(Handler.java:754)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6393)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
This is my layout file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="viewmodel"
type="com.example.ui.welcome.WelcomeViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<ImageView
android:layout_width="@dimen/_60sdp"
android:layout_height="@dimen/_60sdp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/welcome_screen_logo_margin_top"
app:srcCompat="@drawable/logo" />
<com.hanks.htextview.scale.ScaleTextView
android:id="@+id/welcome_header_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/_26sdp"
android:text="@string/static_text_welcome_header"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="@dimen/_20ssp" />
<com.hanks.htextview.scale.ScaleTextView
android:id="@+id/welcome_footer_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/static_text_welcome_footer"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="@dimen/_20ssp" />
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<com.hanks.htextview.scale.ScaleTextView
android:id="@+id/welcome_begin_text"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="@dimen/_40sdp"
android:layout_gravity="bottom"
android:layout_margin="@dimen/_12sdp"
android:background="@drawable/ripple_cornered"
android:onClick="@{v -> viewmodel.onBeginClicked()}"
android:text="@string/static_text_welcome_begin"
android:textAllCaps="true"
android:textColor="@color/black"
android:textSize="@dimen/_14ssp" />
</LinearLayout>
</layout>
up up up @hanks-zyh https://github.com/hanks-zyh/HTextView/issues/115