【问题标题】:NullPointerException with ProgressBar using ActionBarCompat使用 ActionBarCompat 的带有 ProgressBar 的 NullPointerException
【发布时间】:2013-08-12 16:33:09
【问题描述】:

我在 support-v7-r18 中使用 ActionBarCompat。 当试图显示不确定的进度时,它适用于 Galaxy S3 Android 4.1.2,但不适用于 Galaxy Ace Android 2.3.3。

我不知道为什么。

引发异常的代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    final ActionBarActivity activity = this;
    content = (WebView) findViewById(R.id.webContent);
    content.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            activity.setSupportProgressBarIndeterminate(true);   <=== Line 88
            activity.setSupportProgressBarIndeterminateVisibility(true);
        }
    }

例外:

FATAL EXCEPTION: main
    java.lang.NullPointerException
    at  android.support.v7.app.ActionBarActivityDelegateBase.updateProgressBars(ActionBarActivityDelegateBase.java:508)
    at android.support.v7.app.ActionBarActivityDelegateBase.setSupportProgressBarIndeterminate(ActionBarActivityDelegateBase.java:469)
    at android.support.v7.app.ActionBarActivity.setSupportProgressBarIndeterminate(ActionBarActivity.java:282)
    at MyActivity.onPageStarted(MyActivityActivity.java:88)
    at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:266)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:3687)
    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:867)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
    at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 您能否在您发布的代码中选择您的第 88 行。
  • 哎呀,对不起,它是“activity.setSupportProgressBarIndeterminate(true);”

标签: android android-support-library android-actionbar-compat


【解决方案1】:

在调用 setContentView() 之前将 supportRequestWindowFeature(Window.FEATURE_PROGRESS);supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 添加到 onCreate() 方法。

【讨论】:

  • 更准确地说,您需要添加这两个功能才能显示 android 2.3.3 的进度
  • setSupportProgressBarIndeterminateVisibility(Boolean.TRUE);
  • 当我使用 supportRequestWindowFeature 方法请求进度和终止进度时,我仍然崩溃......
  • 在更现代的设备 (4.0.3+) 上我根本看不到这个崩溃,但是在旧的设备(特别是 2.2.1 和 2.3.7 设备)上,我总是遇到这个崩溃.我什至尝试等到 Activity 生命周期的onPostResume() 方法使用setSupportProgressBarIndeterminateVisibility(boolean),它仍然会发生。我不知道 Honeycomb 时代的设备是否会/不会看到这种崩溃。
  • @JulienC 即使我需要添加这两个功能来显示进度,但是这样做时两个进度微调器都是可见的,我只想显示微调器,对此有什么想法吗?
猜你喜欢
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
相关资源
最近更新 更多