【问题标题】:Starting ACTION_VIEW Activity from SherlockFragment causes NullPointerException从 SherlockFragment 启动 ACTION_VIEW Activity 会导致 NullPointerException
【发布时间】:2013-05-20 05:40:46
【问题描述】:

我正在使用 sherlockFragment。
当我按下该片段上的按钮调用以使用 Intent 启动呼叫活动时,它导致了一个错误,但网络仍然加载。当我关闭通话活动时,错误再次出现。
我已经尝试替换最新的 android.support.v4.jar 像 this 但错误仍然相同。
我试过以这种方式开始通话活动:

public class PlaceDetailsFragment extends SherlockFragment {
        //blabla
       public void browseWebPage(final String url){
            getSherlockActivity().startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(websiteUrl)));
        }
} 

这样

public class PlaceDetailsFragment extends SherlockFragment {
        //blabla
    public void browseWebPage(final String url){
         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(websiteUrl));
         startActivity(intent);
    }
}

但仍然有同样的错误 日志猫

05-20 11:37:28.971: E/AndroidRuntime(1819): FATAL EXCEPTION: main
05-20 11:37:28.971: E/AndroidRuntime(1819): java.lang.NullPointerException
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:127)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.Activity.performSaveInstanceState(Activity.java:1137)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1215)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:2951)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3010)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.ActivityThread.access$900(ActivityThread.java:130)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1222)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.os.Looper.loop(Looper.java:137)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at android.app.ActivityThread.main(ActivityThread.java:4745)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at java.lang.reflect.Method.invokeNative(Native Method)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at java.lang.reflect.Method.invoke(Method.java:511)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-20 11:37:28.971: E/AndroidRuntime(1819):     at dalvik.system.NativeStart.main(Native Method)

问题发生在 ACTION_VIEW 和 ACTION_CALL 中 有什么解决方案可以帮助我吗?

【问题讨论】:

标签: android android-intent android-activity actionbarsherlock


【解决方案1】:

我已经找到了解决这个问题的方法。它是由使用带有 ViewIndicator 或其他东西的 sherlockFragment 引起的。
要解决此问题,只需将所有片段的方法覆盖为:

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    setUserVisibleHint(true);
}

找到解决方案here

【讨论】:

  • 嘿...当我有 SherlockFragmentActivity 时,我也经历了同样的事情。但是你上面的代码并没有解决任何问题。
猜你喜欢
  • 2012-02-03
  • 1970-01-01
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多