App was working fine before update.
Whenever i click on some EditText
cursor blinks for some seconds, than app freezes and stuck.
login_activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:context=".activities.LoginActivity">
<app.com.skribl.utils.customviews.CustomTILayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20sdp"
android:gravity="center"
android:textColorHint="@color/orange"
app:customFont="Raleway-Regular.ttf">
<app.com.skribl.utils.customviews.CustomEditText
android:id="@+id/et_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="@string/prompt_email1"
android:inputType="textEmailAddress"
android:maxLines="1"
android:padding="@dimen/x13dp"
android:singleLine="true"
android:textColor="@color/blue_dark"
android:textSize="14sp"
app:customFont="Roboto-Light.ttf" />
</app.com.skribl.utils.customviews.CustomTILayout>
<app.com.skribl.utils.customviews.CustomTILayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_5sdp"
android:gravity="center"
android:textColorHint="@color/orange"
app:customFont="Raleway-Regular.ttf">
<app.com.skribl.utils.customviews.CustomEditText
android:id="@+id/et_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"
android:padding="@dimen/x13dp"
android:singleLine="true"
android:textColor="@color/blue_dark"
android:textSize="14sp"
app:customFont="Roboto-Light.ttf" />
</app.com.skribl.utils.customviews.CustomTILayout>
<app.com.skribl.utils.customviews.CustomButton
android:id="@+id/btn_login"
style="?android:textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20sdp"
android:background="@drawable/round_corner_btn"
android:padding="@dimen/x15dp"
android:text="@string/action_sign_in_short"
android:textColor="@color/white"
android:textSize="@dimen/text_size_moderate"
android:textStyle="bold"
app:customFont="Raleway-Regular.ttf" />
</LinearLayout>
CustomEditText.java
public class CustomEditText extends EditText {
private static final String TAG = "EditText";
public CustomEditText(Context context) {
super(context);
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
setCustomFont(context, attrs);
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setCustomFont(context, attrs);
}
private void setCustomFont(Context ctx, AttributeSet attrs) {
TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.CustomTextView);
String customFont = a.getString(R.styleable.CustomTextView_customFont);
setCustomFont(ctx, customFont);
a.recycle();
}
public boolean setCustomFont(Context ctx, String fontName) {
Typeface typeface = null;
try {
if(fontName == null){
fontName = Constants.DEFAULT_FONT_NAME_FOR_ET;
}
typeface = Typeface.createFromAsset(ctx.getAssets(), "fonts/" + fontName);
} catch (Exception e) {
Log.e(TAG, "Unable to load typeface: "+e.getMessage());
return false;
}
setTypeface(typeface);
return true;
}
protected void setSpan_internal(Object span, int start, int end, int flags) {
final int textLength = getText().length();
((Editable) getText()).setSpan(span, start, Math.min(end, textLength), flags);
}
protected void setCursorPosition_internal(int start, int end) {
final int textLength = getText().length();
Selection.setSelection(((Editable) getText()), Math.min(start, textLength), Math.min(end, textLength));
}
}
here is log so far:
java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.inputmethod.InputConnection.closeConnection()' on a null object reference at android.view.inputmethod.InputConnectionWrapper.closeConnection(InputConnectionWrapper.java:270)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:553)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:93)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
I started having this crash today all the sudden too in a Nexus 6P running Android 7.1.1. I even when back to a stable branch in the project that I knew was working and the same continue happening. The only difference was that I enabled advanced profiling in Edit Configurations -> app -> Profiling, I disabled it and everything went back to normal. In my case the crash was when the keypad was closing. Hope this can help you.
This is a bug in the Advanced Profiling functionality of Android Studio 3.1, rolling back to 3.0 resolves the issue for me now.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With