簡體   English   中英

如何修復 java.lang.NullPointerException 后崩潰的 android 應用程序

[英]How do I fix android app crashing after a java.lang.NullPointerException

我正面臨java.lang.NullPointerException: Attempt to read from field 'android.widget.ImageView com.cottdev.autoserv.databinding.FragmentArtistProfileBinding.ivEditPersonal' on a null object reference

  • 在 com.cottdev.autoserv.ui.fragment.ArtistProfile.setUiAction
  • 在 com.cottdev.autoserv.ui.fragment.ArtistProfile.onCreateView)

遷移到androidx后的問題。 請讓我知道我該怎么做。

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        binding = DataBindingUtil.inflate(inflater, R.layout.fragment_artist_profile, container, false);

        prefrence = SharedPrefrence.getInstance(getActivity());
        userDTO = prefrence.getParentUser(Consts.USER_DTO);
        baseActivity.headerNameTV.setText(getResources().getString(R.string.my_profile));
        parmsCategory.put(Consts.USER_ID, userDTO.getUser_id());

        parms.put(Consts.ARTIST_ID, userDTO.getUser_id());
        parms.put(Consts.USER_ID, userDTO.getUser_id());
        setUiAction();
        return binding.getRoot();
    }

public void setUiAction() {
        binding.ivEditPersonal.setOnClickListener(this);
        binding.appbar.addOnOffsetChangedListener(this);
        binding.btnDelete.setOnClickListener(this);
        binding.btnChange.setOnClickListener(this);

        mMaxScrollSize = binding.appbar.getTotalScrollRange();


        binding.swOnOff.setOnClickListener(v -> {
            if (artistDetailsDTO != null) {
                if (NetworkManager.isConnectToInternet(getActivity())) {
                    paramsUpdate = new HashMap<>();
                    paramsUpdate.put(Consts.USER_ID, userDTO.getUser_id());
                    if (artistDetailsDTO.getIs_online().equalsIgnoreCase("1")) {
                        paramsUpdate.put(Consts.IS_ONLINE, "0");
                        isOnline();
                    } else {
                        paramsUpdate.put(Consts.IS_ONLINE, "1");
                        isOnline();
                    }
                } else {
                    ProjectUtils.showToast(getActivity(), getResources().getString(R.string.internet_concation));
                }
            } else {
                ProjectUtils.showToast(getActivity(), getResources().getString(R.string.incomplete_profile_msg));
            }

        }); 

我認為問題在於您的綁定。

您可以使用不同的方式來覆蓋onCreateView

首先導入import androidx.fragment.app.DialogFragment;

然后extends DialogFragment

你像這樣覆蓋onCreateview

     @Nullable @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_artist_profile, container, false); 
       
        // you can call xml element by using view.findviewbyid ..

        return view;
     }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM