kevalpatel2106 / PasscodeView

PasscodeView is an Android Library to easily and securely authenticate user with PIN code or using the fingerprint scanner.
Apache License 2.0
272 stars 64 forks source link

null pointer exception #19

Open wizardkhinz18 opened 6 years ago

wizardkhinz18 commented 6 years ago

xml code

<RelativeLayout 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:paddingBottom="10dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="10dp">

<ImageView
    android:id="@+id/imageView"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_centerHorizontal="true"
    android:elevation="4dp"
    android:src="@mipmap/ic_image_placeholder"
    tools:ignore="ContentDescription"/>

<com.kevalpatel.passcodeview.PinView
    android:id="@+id/pinView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/imageView"
    app:dividerColor="@color/colorPrimaryDark"
    app:fingerprintDefaultText="Scan your finger to unlock application"
    app:fingerprintEnable="true"
    app:fingerprintTextColor="@color/colorAccent"
    app:fingerprintTextSize="16dp"
    app:giveTactileFeedback="true"
    app:titleTextColor="@android:color/white"/>


java code

public class AuthPINFragment extends MainFragment{

private final String TAG = AuthPINFragment.class.getSimpleName();

@BindView(R.id.pinView)PinView pinView;

@Override
protected int getLayoutResource() {
    return R.layout.auth_pin_fragment;
}

@Override
protected void initWidget(View view) {
    ButterKnife.bind(this, view);
}

@Override
protected void initListener() {

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    return super.onCreateView(inflater, container, savedInstanceState);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    final int[] correctPin = new int[]{1, 2, 3,4};
    pinView.setPinAuthenticator(new PasscodeViewPinAuthenticator(correctPin));
    pinView.setKey(new RoundKey.Builder(pinView)
            .setKeyPadding(10f)
            .setKeyStrokeColorResource(R.color.colorAccent)
            .setKeyStrokeWidth(3f)
            .setKeyTextColorResource(R.color.colorAccent)
            .setKeyTextSize(18f));
    pinView.setIndicator(new CircleIndicator.Builder(pinView)
            .setIndicatorRadius(10f)
            .setIndicatorFilledColorResource(R.color.colorAccent)
            .setIndicatorStrokeColorResource(R.color.colorAccent)
            .setIndicatorStrokeWidth(3f));
    pinView.setPinLength(PinView.DYNAMIC_PIN_LENGTH);
    pinView.setTitle("Enter the PIN");
    pinView.setAuthenticationListener(new AuthenticationListener() {
        @Override
        public void onAuthenticationSuccessful() {
            CommonUtil.showDialog(getActivity(), "Success");
        }

        @Override
        public void onAuthenticationFailed() {
            CommonUtil.showDialog(getActivity(), "Failed");
        }
    });
}

}


error log

09-03 14:07:10.359 4539-4539/ph.com.sdsolutions.networkmonks E/AndroidRuntime: FATAL EXCEPTION: main Process: ph.com.sdsolutions.networkmonks, PID: 4539 java.lang.NullPointerException: Attempt to read from null array at com.kevalpatel.passcodeview.internal.BoxKeypad.measureView(BoxKeypad.java:181) at com.kevalpatel.passcodeview.PinView.measureView(PinView.java:182) at com.kevalpatel.passcodeview.internal.BasePasscodeView.onMeasure(BasePasscodeView.java:212) at android.view.View.measure(View.java:18855) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462) at android.view.View.measure(View.java:18855) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462) at android.view.View.measure(View.java:18855) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6107) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141) at android.view.View.measure(View.java:18855) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6107) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18855) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6107) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:18855) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6107) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465) at android.widget.LinearLayout.measureVertical(LinearLayout.java:748) at android.widget.LinearLayout.onMeasure(LinearLayout.java:630) at android.view.View.measure(View.java:18855) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6107) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2780) at android.view.View.measure(View.java:18855) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2139) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1236) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1472) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1127) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6156) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:892) at android.view.Choreographer.doCallbacks(Choreographer.java:704) at android.view.Choreographer.doFrame(Choreographer.java:640) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:878) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5628) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:853) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)

rt1shnik commented 5 years ago

Answered here