【问题标题】:StackOverflowError when showing ProgressDialog显示 ProgressDialog 时出现 StackOverflowError
【发布时间】:2015-02-10 09:26:06
【问题描述】:

我显示ProgressDialog如下:

private void showProgressDialog() {
    mProgressDialog = new ProgressDialog(this);
    mProgressDialog.setIndeterminate(true);
    mProgressDialog.setMessage(getString(R.string.logging_in));
    mProgressDialog.show();
}

但在某些设备上(Sony Xperia L ; 4.1.2)我得到了这个例外:

java.lang.StackOverflowError
    at com.android.internal.app.AlertController.installContent(AlertController.java:236)
    at android.app.AlertDialog.onCreate(AlertDialog.java:336)
    at android.app.ProgressDialog.onCreate(ProgressDialog.java:198)
    at android.app.Dialog.dispatchOnCreate(Dialog.java:351)
    at android.app.Dialog.show(Dialog.java:256)
    at com.x.x.activity.LoginActivity.showProgressDialog(LoginActivity.java:140)
    at com.x.x.activity.LoginActivity.onPasswordBtnClick(LoginActivity.java:119)
    at com.x.x.activity.LoginActivity$$ViewInjector$3.onClick(LoginActivity$$ViewInjector.java:40)
    at android.view.View.performClick(View.java:4129)
    at android.view.View$PerformClick.run(View.java:17143)
    at android.os.Handler.handleCallback(Handler.java:615)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4802)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:813)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:580)
    at dalvik.system.NativeStart.main(Native Method)

编辑:我正在使用 ButterKnife,此方法在 Activity 类中。

@OnClick(R.id.login_btn_password)
void onPasswordBtnClick(TextView textview) {
    if (mLoginName.getEditableText().toString().trim().isEmpty()) {
        MyToast.showToast(R.string.empty_username, Toast.LENGTH_LONG);
        return;
    }

    showProgressDialog();
}

提前致谢。

【问题讨论】:

  • 你能在这里显示完整的代码吗?从哪里调用此方法?
  • 改用新的 ProgressDialog(LoginActivity.this)

标签: android dialog progressdialog


【解决方案1】:

我已经“解决”了问题。我看不出这两件事之间有什么联系,但是将 google 邮件添加到 Google Play(并可能更新 Google 服务)解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2019-06-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    相关资源
    最近更新 更多