Java ProgressDialog上的NullPointerException

Java ProgressDialog上的NullPointerException,java,android,nullpointerexception,progressdialog,Java,Android,Nullpointerexception,Progressdialog,我在使用进度对话框时遇到NullPointerException 我的代码如下: package org.text.me.actionBar.edit.fragments; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle;

我在使用进度对话框时遇到NullPointerException

我的代码如下:

package org.text.me.actionBar.edit.fragments;

import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.quickblox.core.QBCallback;
import com.quickblox.core.QBCallbackImpl;
import com.quickblox.core.result.Result;
import com.quickblox.module.content.QBContent;
import com.quickblox.module.content.model.QBFile;
import com.quickblox.module.content.result.QBFileUploadTaskResult;
import com.quickblox.module.users.QBUsers;
import com.quickblox.module.users.model.QBUser;
import org.text.me.R;
import org.text.me.actionBar.definitions.Queries;
import org.text.me.actionBar.edit.activity.ChangeNameActivity;
import org.text.me.actionBar.edit.activity.ChangePasswordActivity;
import org.text.me.actionBar.gallery.activity.GalleryActivity;
import org.text.me.actionBar.holder.DataHolder;
import org.text.me.actionBar.utils.bitmap.BitmapUtility;
import org.text.me.actionBar.utils.external_storage.ExternalStorageUtils;

import java.io.File;

import static android.widget.ImageView.ScaleType.FIT_CENTER;
import static org.text.me.actionBar.definitions.Constants.TAG;
import static org.text.me.actionBar.preferences.SharedConstants.*;
import static org.text.me.actionBar.preferences.SharedPrefs.*;

public class EditProfileFragment extends Fragment implements View.OnClickListener, QBCallback {

private View        editProfileView;
private ImageView   ivProfilePicture;
private TextView    tvFullName;
private ImageButton ibPassword;
private ImageButton ibName;

private ProgressDialog progressDialog;

private String fullName = null;

private Bitmap DEFAULT_PROFILE_PICTURE = null;
private Bitmap PROFILE_PICTURE         = null;

private static       int                   DEFAULT_WIDTH            = 300;
private static       int                   DEFAULT_HEIGHT           = 250;
private static final int                   DEFAULT_COMPRESS_QUALITY = 100;
private static final Bitmap.CompressFormat DEFAULT_COMPRESS_FORMAT  = Bitmap.CompressFormat.PNG;
private static final boolean               fileIsPublic             = false;

public static EditProfileFragment getInstance () {
    return new EditProfileFragment ();
}

@Override
public void onCreate (Bundle savedInstanceState) {
    super.onCreate ( savedInstanceState );
    setHasOptionsMenu ( false );
}

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    editProfileView = inflater.inflate ( R.layout.fragment_edit_profile, container, false );

    setupUi ();
    setupProgressDialog ();

    return editProfileView;
}

private void setupUi () {
    tvFullName = (TextView) editProfileView.findViewById ( R.id.tvName );
    ivProfilePicture = (ImageView) editProfileView.findViewById ( R.id.ivEditProfilePicture );
    ibPassword = (ImageButton) editProfileView.findViewById ( R.id.ibPassword );
    ibName = (ImageButton) editProfileView.findViewById ( R.id.ibName );

    tvFullName.setText ( getStringPrefs ( getActivity (), SIGN_IN_USER_FULL_NAME ) );

    if ( getStringPrefs ( getActivity (), PROFILE_PICTURE_PATH ).equals ( null ) )
        setupDefaultProfilePicture ();
    else
        setupProfilePicture ();


    ibName.setOnClickListener ( this );
    ibPassword.setOnClickListener ( this );
    ivProfilePicture.setOnClickListener ( this );
}

private void setupProgressDialog () {
    progressDialog = new ProgressDialog ( editProfileView.getContext () );
    progressDialog.setMessage ( getResources ().getString ( R.string.loading ) );
    progressDialog.setCancelable ( false );
}

private void setupDefaultProfilePicture () {
    DEFAULT_PROFILE_PICTURE = BitmapUtility.decodeSampledBitmapFromResource (
            getResources (),
            R.drawable.action_people,
            DEFAULT_WIDTH,
            DEFAULT_HEIGHT );
    ivProfilePicture.setScaleType ( FIT_CENTER );
    ivProfilePicture.setImageBitmap ( DEFAULT_PROFILE_PICTURE );
}

private void setupProfilePicture () {
    if ( PROFILE_PICTURE != null ) PROFILE_PICTURE.recycle ();

    BitmapFactory.Options options = new BitmapFactory.Options ();
    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
    options.inPurgeable = true;
    options.inInputShareable = true;
    options.inDither = false;
    options.inSampleSize = 8;
    PROFILE_PICTURE = BitmapFactory.decodeFile ( getStringPrefs ( getActivity (), PROFILE_PICTURE_PATH ),
                                                 options );
    ivProfilePicture.setImageBitmap ( PROFILE_PICTURE );

    if ( !getBooleanPrefs ( getActivity (), IS_PROFILE_UPLOADED ) && !getStringPrefs ( getActivity (),
                                                                                       PROFILE_PICTURE_PATH )
            .equals ( null ) ) {

        progressDialog.show ();

        File profilePicture = ExternalStorageUtils.saveBitmapToFile ( PROFILE_PICTURE, DEFAULT_COMPRESS_FORMAT,
                                                                      DEFAULT_COMPRESS_QUALITY,
                                                                      String.valueOf ( getIntPrefs ( getActivity
                                                                                                             (),
                                                                                                     SIGN_IN_USER_ID ) ) );
        QBContent.uploadFileTask ( profilePicture, fileIsPublic, new QBCallbackImpl () {
            @Override
            public void onComplete (Result result) {
                if ( result.isSuccess () ) {
                    //Get the uploaded file
                    QBFileUploadTaskResult taskResult = (QBFileUploadTaskResult) result;
                    QBFile file = taskResult.getFile ();
                    int uploadedFileId = file.getId ();

                    //Connect image to user
                    QBUser user = new QBUser ();
                    user.setId ( getIntPrefs ( getActivity (), SIGN_IN_USER_ID ) );
                    user.setFileId ( uploadedFileId );

                    QBUsers.updateUser ( user, new QBCallbackImpl () {
                        @Override
                        public void onComplete (Result result) {
                            if ( result.isSuccess () ) {
                                Toast.makeText ( getActivity (), getResources ().getString ( R.string
                                                                                                     .action_edit_successful ), Toast.LENGTH_SHORT ).show ();
                                progressDialog.dismiss ();
                                setBooleanPrefs ( getActivity (), IS_PROFILE_UPLOADED, true );
                            } else {
                                progressDialog.hide ();
                                Toast.makeText ( getActivity (), result.getErrors ().get ( 0 ).toString (),
                                                 Toast.LENGTH_SHORT ).show ();
                                Log.e ( TAG, result.getErrors ().toString () );
                            }
                        }
                    } );
                } else {
                    progressDialog.hide ();
                    Toast.makeText ( getActivity (), result.getErrors ().get ( 0 ).toString (),
                                     Toast.LENGTH_SHORT ).show ();
                    Log.e ( TAG, result.getErrors ().toString () );
                }
            }
        } );
    }
}

@Override
public void onClick (View v) {
    switch ( v.getId () ) {
        case R.id.ibPassword:
            startActivity ( new Intent ( this.getActivity (), ChangePasswordActivity.class ) );
            break;

        case R.id.ibName:
            startActivity ( new Intent ( this.getActivity (), ChangeNameActivity.class ) );
            break;

        case R.id.ivEditProfilePicture:
            Intent intent = new Intent ( getActivity (), GalleryActivity.class );
            startActivity ( intent );
            break;
    }
}

@Override
public void onComplete (Result result) {

}

@Override
public void onComplete (Result result, Object query) {
    Queries queryType = (Queries) query;
    if ( result.isSuccess () ) {
        switch ( queryType ) {
            case QUERY_UPDATE_USER_INFO:
                DataHolder.getDataHolder ().getSignInUser ().setFullName ( fullName );
                progressDialog.dismiss ();
                Toast.makeText ( this.getActivity (), getResources ().getString ( R.string
                                                                                          .action_edit_successful ),

                                 Toast.LENGTH_SHORT ).show ();
                break;
        }
    } else {
        progressDialog.hide ();
        Toast.makeText ( this.getActivity (), result.getErrors ().get ( 0 ).toString (),
                         Toast.LENGTH_SHORT ).show ();
        Log.e ( TAG, result.getErrors ().toString () );
    }
}
}
01-23 07:14:55.524    3126-3126/org.text.me W/dalvikvm﹕ threadid=1: thread exiting     with uncaught exception (group=0x4001d560)
01-23 07:14:55.574    3126-3126/org.text.me E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.setupProfilePicture(EditProfileFragment.java:134)
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.setupUi(EditProfileFragment.java:93)
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.onCreateView(EditProfileFragment.java:76)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewRoot.performTraversals(ViewRoot.java:843)
        at android.view.ViewRoot.handleMessage(ViewRoot.java:1864)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:130)
        at android.app.ActivityThread.main(ActivityThread.java:3698)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633)
        at dalvik.system.NativeStart.main(Native Method)
我得到的错误如下:

package org.text.me.actionBar.edit.fragments;

import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.quickblox.core.QBCallback;
import com.quickblox.core.QBCallbackImpl;
import com.quickblox.core.result.Result;
import com.quickblox.module.content.QBContent;
import com.quickblox.module.content.model.QBFile;
import com.quickblox.module.content.result.QBFileUploadTaskResult;
import com.quickblox.module.users.QBUsers;
import com.quickblox.module.users.model.QBUser;
import org.text.me.R;
import org.text.me.actionBar.definitions.Queries;
import org.text.me.actionBar.edit.activity.ChangeNameActivity;
import org.text.me.actionBar.edit.activity.ChangePasswordActivity;
import org.text.me.actionBar.gallery.activity.GalleryActivity;
import org.text.me.actionBar.holder.DataHolder;
import org.text.me.actionBar.utils.bitmap.BitmapUtility;
import org.text.me.actionBar.utils.external_storage.ExternalStorageUtils;

import java.io.File;

import static android.widget.ImageView.ScaleType.FIT_CENTER;
import static org.text.me.actionBar.definitions.Constants.TAG;
import static org.text.me.actionBar.preferences.SharedConstants.*;
import static org.text.me.actionBar.preferences.SharedPrefs.*;

public class EditProfileFragment extends Fragment implements View.OnClickListener, QBCallback {

private View        editProfileView;
private ImageView   ivProfilePicture;
private TextView    tvFullName;
private ImageButton ibPassword;
private ImageButton ibName;

private ProgressDialog progressDialog;

private String fullName = null;

private Bitmap DEFAULT_PROFILE_PICTURE = null;
private Bitmap PROFILE_PICTURE         = null;

private static       int                   DEFAULT_WIDTH            = 300;
private static       int                   DEFAULT_HEIGHT           = 250;
private static final int                   DEFAULT_COMPRESS_QUALITY = 100;
private static final Bitmap.CompressFormat DEFAULT_COMPRESS_FORMAT  = Bitmap.CompressFormat.PNG;
private static final boolean               fileIsPublic             = false;

public static EditProfileFragment getInstance () {
    return new EditProfileFragment ();
}

@Override
public void onCreate (Bundle savedInstanceState) {
    super.onCreate ( savedInstanceState );
    setHasOptionsMenu ( false );
}

@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    editProfileView = inflater.inflate ( R.layout.fragment_edit_profile, container, false );

    setupUi ();
    setupProgressDialog ();

    return editProfileView;
}

private void setupUi () {
    tvFullName = (TextView) editProfileView.findViewById ( R.id.tvName );
    ivProfilePicture = (ImageView) editProfileView.findViewById ( R.id.ivEditProfilePicture );
    ibPassword = (ImageButton) editProfileView.findViewById ( R.id.ibPassword );
    ibName = (ImageButton) editProfileView.findViewById ( R.id.ibName );

    tvFullName.setText ( getStringPrefs ( getActivity (), SIGN_IN_USER_FULL_NAME ) );

    if ( getStringPrefs ( getActivity (), PROFILE_PICTURE_PATH ).equals ( null ) )
        setupDefaultProfilePicture ();
    else
        setupProfilePicture ();


    ibName.setOnClickListener ( this );
    ibPassword.setOnClickListener ( this );
    ivProfilePicture.setOnClickListener ( this );
}

private void setupProgressDialog () {
    progressDialog = new ProgressDialog ( editProfileView.getContext () );
    progressDialog.setMessage ( getResources ().getString ( R.string.loading ) );
    progressDialog.setCancelable ( false );
}

private void setupDefaultProfilePicture () {
    DEFAULT_PROFILE_PICTURE = BitmapUtility.decodeSampledBitmapFromResource (
            getResources (),
            R.drawable.action_people,
            DEFAULT_WIDTH,
            DEFAULT_HEIGHT );
    ivProfilePicture.setScaleType ( FIT_CENTER );
    ivProfilePicture.setImageBitmap ( DEFAULT_PROFILE_PICTURE );
}

private void setupProfilePicture () {
    if ( PROFILE_PICTURE != null ) PROFILE_PICTURE.recycle ();

    BitmapFactory.Options options = new BitmapFactory.Options ();
    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
    options.inPurgeable = true;
    options.inInputShareable = true;
    options.inDither = false;
    options.inSampleSize = 8;
    PROFILE_PICTURE = BitmapFactory.decodeFile ( getStringPrefs ( getActivity (), PROFILE_PICTURE_PATH ),
                                                 options );
    ivProfilePicture.setImageBitmap ( PROFILE_PICTURE );

    if ( !getBooleanPrefs ( getActivity (), IS_PROFILE_UPLOADED ) && !getStringPrefs ( getActivity (),
                                                                                       PROFILE_PICTURE_PATH )
            .equals ( null ) ) {

        progressDialog.show ();

        File profilePicture = ExternalStorageUtils.saveBitmapToFile ( PROFILE_PICTURE, DEFAULT_COMPRESS_FORMAT,
                                                                      DEFAULT_COMPRESS_QUALITY,
                                                                      String.valueOf ( getIntPrefs ( getActivity
                                                                                                             (),
                                                                                                     SIGN_IN_USER_ID ) ) );
        QBContent.uploadFileTask ( profilePicture, fileIsPublic, new QBCallbackImpl () {
            @Override
            public void onComplete (Result result) {
                if ( result.isSuccess () ) {
                    //Get the uploaded file
                    QBFileUploadTaskResult taskResult = (QBFileUploadTaskResult) result;
                    QBFile file = taskResult.getFile ();
                    int uploadedFileId = file.getId ();

                    //Connect image to user
                    QBUser user = new QBUser ();
                    user.setId ( getIntPrefs ( getActivity (), SIGN_IN_USER_ID ) );
                    user.setFileId ( uploadedFileId );

                    QBUsers.updateUser ( user, new QBCallbackImpl () {
                        @Override
                        public void onComplete (Result result) {
                            if ( result.isSuccess () ) {
                                Toast.makeText ( getActivity (), getResources ().getString ( R.string
                                                                                                     .action_edit_successful ), Toast.LENGTH_SHORT ).show ();
                                progressDialog.dismiss ();
                                setBooleanPrefs ( getActivity (), IS_PROFILE_UPLOADED, true );
                            } else {
                                progressDialog.hide ();
                                Toast.makeText ( getActivity (), result.getErrors ().get ( 0 ).toString (),
                                                 Toast.LENGTH_SHORT ).show ();
                                Log.e ( TAG, result.getErrors ().toString () );
                            }
                        }
                    } );
                } else {
                    progressDialog.hide ();
                    Toast.makeText ( getActivity (), result.getErrors ().get ( 0 ).toString (),
                                     Toast.LENGTH_SHORT ).show ();
                    Log.e ( TAG, result.getErrors ().toString () );
                }
            }
        } );
    }
}

@Override
public void onClick (View v) {
    switch ( v.getId () ) {
        case R.id.ibPassword:
            startActivity ( new Intent ( this.getActivity (), ChangePasswordActivity.class ) );
            break;

        case R.id.ibName:
            startActivity ( new Intent ( this.getActivity (), ChangeNameActivity.class ) );
            break;

        case R.id.ivEditProfilePicture:
            Intent intent = new Intent ( getActivity (), GalleryActivity.class );
            startActivity ( intent );
            break;
    }
}

@Override
public void onComplete (Result result) {

}

@Override
public void onComplete (Result result, Object query) {
    Queries queryType = (Queries) query;
    if ( result.isSuccess () ) {
        switch ( queryType ) {
            case QUERY_UPDATE_USER_INFO:
                DataHolder.getDataHolder ().getSignInUser ().setFullName ( fullName );
                progressDialog.dismiss ();
                Toast.makeText ( this.getActivity (), getResources ().getString ( R.string
                                                                                          .action_edit_successful ),

                                 Toast.LENGTH_SHORT ).show ();
                break;
        }
    } else {
        progressDialog.hide ();
        Toast.makeText ( this.getActivity (), result.getErrors ().get ( 0 ).toString (),
                         Toast.LENGTH_SHORT ).show ();
        Log.e ( TAG, result.getErrors ().toString () );
    }
}
}
01-23 07:14:55.524    3126-3126/org.text.me W/dalvikvm﹕ threadid=1: thread exiting     with uncaught exception (group=0x4001d560)
01-23 07:14:55.574    3126-3126/org.text.me E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.setupProfilePicture(EditProfileFragment.java:134)
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.setupUi(EditProfileFragment.java:93)
        at org.text.me.actionBar.edit.fragments.EditProfileFragment.onCreateView(EditProfileFragment.java:76)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1467)
        at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:472)
        at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:1068)
        at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
        at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1436)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
        at android.view.View.measure(View.java:8313)
        at android.view.ViewRoot.performTraversals(ViewRoot.java:843)
        at android.view.ViewRoot.handleMessage(ViewRoot.java:1864)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:130)
        at android.app.ActivityThread.main(ActivityThread.java:3698)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:507)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:875)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:633)
        at dalvik.system.NativeStart.main(Native Method)
如果我把progressDialog.show()注释掉,这个程序会很有魅力
错误发生在progressDialog.show()上;那里怎么会发生NullPointerException?解决方案是什么?

在setupProgressDialog(创建进度对话框的地方)之前调用setupUI方法,setupUI方法调用setupProfilePicture,该方法尝试使用尚未创建的进度对话框,因此出现空指针异常。

在setupProgressDialog(创建进度对话框的地方)之前调用setupUI方法,setupUI方法调用setupProfilePicture,它试图使用尚未创建的进度对话框,因此出现空指针异常。

setupProfilePicture()
,它访问
progressDialog
实例,仍然是
null
,最终在
setupProgressDialog()之前被调用
。逐步执行您在
onCreateView()
中进行的
setupUi()
setupProgressDialog()
调用,该调用访问
progressDialog
实例,仍然是
null
,最终在
setupProgressDialog()之前调用。在
onCreateView()

中,逐步执行正在进行的
setupUi()
setupProgressDialog()
调用,然后跟踪堆栈跟踪。在创建它之前,您尝试使用
setupProfilePicture()
(从
setupUi()
调用)中的
progressDialog
。FWIW我看到代码有很多错误,但我没有看到这个问题有任何特别的错误。这是另一个“我有一个NPE”的问题,但这是一个完整的问题。@SK9不再可关闭,但肯定可以为研究工作而关闭。NPE的原因只有一个,在这种情况下,这是显而易见的。“为我调试我的代码”应该是可关闭的,但是,唉,它不是。@BrianRoach很公平,如果可以的话,我会+1你的视图:“\“为我调试我的代码\”应该是可关闭的。跟随堆栈跟踪。在创建它之前,您尝试使用
setupProfilePicture()
(从
setupUi()
调用)中的
progressDialog
。FWIW我看到代码有很多错误,但我没有看到这个问题有任何特别的错误。这是另一个“我有一个NPE”的问题,但这是一个完整的问题。@SK9不再可关闭,但肯定可以为研究工作而关闭。NPE的原因只有一个,在这种情况下,这是显而易见的。“为我调试我的代码”应该是可关闭的,但是,唉,它不是。@BrianRoach很公平,如果可以的话,我会+1你的观点:““为我调试我的代码”应该是可关闭的。