簡體   English   中英

從手機運行時,Android App崩潰,但在模擬器中工作正常

[英]Android App crashes when run from phone but works fine in emulator

最近,我的android應用在真實設備上測試時崩潰了。 但是在模擬器上測試時效果很好。 我的應用程序具有實現RecyclerView的片段,當單擊RecyclerView中的項目時,它將啟動新的Detail活動,並且在單擊后退按鈕時會崩潰。 我的角色已恢復到可在設備上運行的先前提交,但仍崩潰。 這是錯誤日志:

07-10 14:07:15.146 12250-12250/com.luckyendey.polymarkapp E/AndroidRuntime: FATAL EXCEPTION: main
                                                                        Process: com.luckyendey.polymarkapp, PID: 12250
                                                                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.luckyendey.polymarkapp/com.luckyendey.polymarkapp.main.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.luckyendey.polymarkapp.bonsementara.BonSementaraHeaderTabOpenFragment$LayoutManagerType.ordinal()' on a null object reference
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
                                                                            at android.app.ActivityThread.access$800(ActivityThread.java:156)
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                            at android.os.Looper.loop(Looper.java:211)
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5389)
                                                                            at java.lang.reflect.Method.invoke(Native Method)
                                                                            at java.lang.reflect.Method.invoke(Method.java:372)
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
                                                                         Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.luckyendey.polymarkapp.bonsementara.BonSementaraHeaderTabOpenFragment$LayoutManagerType.ordinal()' on a null object reference
                                                                            at com.luckyendey.polymarkapp.bonsementara.BonSementaraHeaderTabOpenFragment.setRecyclerViewLayoutManager(BonSementaraHeaderTabOpenFragment.java:98)
                                                                            at com.luckyendey.polymarkapp.bonsementara.BonSementaraHeaderTabOpenFragment.onCreateView(BonSementaraHeaderTabOpenFragment.java:60)
                                                                            at android.support.v4.app.Fragment.performCreateView(Fragment.java:2192)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1299)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
                                                                            at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2900)
                                                                            at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:2207)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1326)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
                                                                            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
                                                                            at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2900)
                                                                            at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
                                                                            at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:603)
                                                                            at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
                                                                            at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)
                                                                            at android.app.Activity.performStart(Activity.java:6006)
                                                                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342)
                                                                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442) 
                                                                            at android.app.ActivityThread.access$800(ActivityThread.java:156) 
                                                                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351) 
                                                                            at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                            at android.os.Looper.loop(Looper.java:211) 
                                                                            at android.app.ActivityThread.main(ActivityThread.java:5389) 
                                                                            at java.lang.reflect.Method.invoke(Native Method) 
                                                                            at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020) 
                                                                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

這是我的代碼:

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.tab_purchase_request_open, container, false);

    access_token = GlobalMethod.getPref("access_token",getContext());

    presenter = new PurchaseRequestHeaderOpenPresenter(this);
    presenter.getListDataPurchaseRequest(access_token,"");
    presenter.getRequestType(access_token);

    recyclerView = (RecyclerView) view.findViewById(R.id.recycler_purchase_request_open);
    mLayoutManager = new LinearLayoutManager(getActivity());
    mCurrentLayoutManagerType = LayoutManagerType.LINEAR_LAYOUT_MANAGER;

    if (savedInstanceState != null) {
        // Restore saved layout manager type.
        mCurrentLayoutManagerType = (LayoutManagerType) savedInstanceState
                .getSerializable(KEY_LAYOUT_MANAGER); // this is return null that causing the error
    }

    setRecyclerViewLayoutManager(mCurrentLayoutManagerType);

    swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_purchase_request_open);
    swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary,R.color.colorAccent,R.color.colorPrimary);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            presenter.getListDataPurchaseRequest(access_token,"");
        }
    });

    return  view;
}

在模擬器上,當按回擊詳細信息活動時,onCreateView不會觸發,但是在設備中它將再次調用。

通過關閉“ 不要開發人員選項保留活動”已經解決了這個問題。 我忘了啟用了它,現在我的應用程序運行良好。

暫無
暫無

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

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