我已经写了我先前项目中的代码行,这些代码在单击个人资料图片时加载图库。我将粘贴的代码从该项目复制到了此处,以进行适当的更改以期望能够正常工作(因为它可以完美地在其他应用程序上运行)。但是我得到了空指针异常。

Attempt to invoke virtual method 'void de.hdodenhof.circleimageview.CircleImageView.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
    at com.kujinn.meetup.Settings.onCreateView(Settings.java:78)


我尝试查看是否意外地使用了相同的ID两次,或者是否使用了错误的视图,但是似乎什么都没有错。

Java代码:

   private CircleImageView profileImage
   profileImage = (CircleImageView) getActivity().findViewById(R.id.edit_profile_image);
   profileImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //If version is greater than Marshmallow, User Permissions in required
                if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){

                    //Display message that user has denied permission
                    if(ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){

                        Toast.makeText(getActivity(), "Permission Denied.", Toast.LENGTH_LONG).show();
                        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},1);

                    } else{

                        CropImage.activity()
                                .setGuidelines(CropImageView.Guidelines.ON)
                                .setAspectRatio(1,1)
                                .start(getActivity());
                    }
                }

            }
        });


XML代码

 <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/edit_profile_image"
        android:layout_width="184dp"
        android:layout_height="177dp"
        android:layout_marginTop="64dp"
        android:src="@drawable/ic_person_black_24dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/edit_profile_toolbar">

 </de.hdodenhof.circleimageview.CircleImageView>

Any help would be greatly appreciated ~


最佳答案

在这种情况下,可能有两种情况。要么是在设置内容视图之前实例化了CircleImageView,要么是没有正确实例化CircleImageView。在分配profileImage之前,请确保您有“ setContentView(R.layout.activity_layout)”。空指针异常从字面上意味着未设置父布局,但是您正在其上调用组件。这肯定会指向null。

10-05 17:39