android項目, 不管什么異常都定位不到具體位置, 會報下面的錯誤, 麻煩-。-大神能不能看看


主要就是異常定位不到具體頁面,都不知道 是什么錯了, 總是會歸結成一個異常:如下

10-16 10:02:53.554 23316-23316/com E/AndroidRuntime: FATAL EXCEPTION: main
                                                                    Process: com, PID: 23316
                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.activity.MainActivity}: java.lang.RuntimeException: Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730)
                                                                        at android.app.ActivityThread.-wrap12(ActivityThread.java)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:154)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:6175)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:874)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
                                                                     Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
                                                                        at android.os.Parcel.readValue(Parcel.java:2443)
                                                                        at android.os.Parcel.readSparseArrayInternal(Parcel.java:2798)
                                                                        at android.os.Parcel.readSparseArray(Parcel.java:2067)
                                                                        at android.os.Parcel.readValue(Parcel.java:2421)
                                                                        at android.os.Parcel.readArrayMapInternal(Parcel.java:2717)
                                                                        at android.os.BaseBundle.unparcel(BaseBundle.java:269)
                                                                        at android.os.Bundle.getSparseParcelableArray(Bundle.java:910)
                                                                        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1208)
                                                                        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.dispatchCreate(FragmentManager.java:2893)
                                                                        at android.support.v4.app.FragmentController.dispatchCreate(FragmentController.java:190)
                                                                        at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:353)
                                                                        at com.basic.BasicActivity.onCreate(BasicActivity.java:27)
                                                                        at com.activity.MainActivity.onCreate(MainActivity.java:61)
                                                                        at android.app.Activity.performCreate(Activity.java:6736)
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2622)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2730) 
                                                                        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1479) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:154) 
                                                                        at android.app.ActivityThread.main(ActivityThread.java:6175) 
                                                                        at java.lang.reflect.Method.invoke(Native Method) 

16 个解决方案

#1


啟動另一個Activity時,傳遞的參數序列化的問題吧

#2


Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
傳遞的數據實現Parcelable接口后,writeToParcel方法中沒寫全。

#3


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。

#4


引用 1 樓 xw13782513621 的回復:
啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。

#5


引用 2 樓 jklwan 的回復:
Parcel android.os.Parcel@3356e91: Unmarshalling unknown type code 2131624537 at offset 2232
傳遞的數據實現Parcelable接口后,writeToParcel方法中沒寫全。


我整個項目都沒有 寫過-。-parcelable 的序列化。。

#6


引用 4 樓 hanxiduo9296 的回復:
Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化

#7


引用 6 樓 xw13782513621 的回復:
Quote: 引用 4 樓 hanxiduo9296 的回復:

Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化



 //開啟一個共同的NoTitleAcitivity
    public void startNoTitleFragment(Bundle bundle, Class<? extends Fragment> aClass) {
        Intent intent = new Intent();
        intent.setClass(IDoctorApplication.sContext, ShowNoTitleActivity.class);
        intent.putExtra(Configs.ArgumentFragment.SKIPFRAGMENT, aClass);
        if(bundle != null){
            intent.putExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE, bundle);
        }
        getActivity().startActivity(intent);
    }

這樣傳遞的  , 就傳字節碼丫,  然后,那邊 拿到, 反射實例化 fragment 

#8


引用 6 樓 xw13782513621 的回復:
Quote: 引用 4 樓 hanxiduo9296 的回復:

Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化



我有個 新想法。。 我從 MainActivity 開啟了一個新的 Bactivity ,這個Bactivity  由於異常報錯崩了, 所以要界面要跳回 MainActivity ,但是傳遞某個東西的時候系列化異常 導致 MainActivity也開啟不了, 就報錯 這樣的錯。。。。。。

#9


引用 6 樓 xw13782513621 的回復:
Quote: 引用 4 樓 hanxiduo9296 的回復:

Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化


我找到我的真實錯誤位置了 :   是 MainActivity 里面開啟的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value())   這句話, 空了, 就不能轉換成Integer 了

#10


引用 9 樓 hanxiduo9296 的回復:
Quote: 引用 6 樓 xw13782513621 的回復:

Quote: 引用 4 樓 hanxiduo9296 的回復:

Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化


我找到我的真實錯誤位置了 :   是 MainActivity 里面開啟的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value())   這句話, 空了, 就不能轉換成Integer 了


。。。。。。

#11


引用 10 樓 xw13782513621 的回復:
Quote: 引用 9 樓 hanxiduo9296 的回復:

Quote: 引用 6 樓 xw13782513621 的回復:

Quote: 引用 4 樓 hanxiduo9296 的回復:

Quote: 引用 1 樓 xw13782513621 的回復:

啟動另一個Activity時,傳遞的參數序列化的問題吧


 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


你怎么傳遞的啊?不會報錯嗎?
啟動Activity需要通過進程間通信,所有參數要么是基本類型,要么必須序列化


我找到我的真實錯誤位置了 :   是 MainActivity 里面開啟的Bacitivty 上面的 fragment 的 Integer.valueOf( bean.getEnum_value())   這句話, 空了, 就不能轉換成Integer 了


。。。。。。


但是我是用眼睛找到的吶-。-  還是不能具體定位到那個真正錯誤的地方,,  大神別走, 能不能再思考一下,為什么,不能定位直接找到報錯的地方, 不然很難受,每次都要自己去 代碼里找

#12


引用 3 樓 hanxiduo9296 的回復:
 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


因為這個錯誤是系統拋出來的,是他在檢查參數的時候發現錯誤然后拋出來的,並不是你在設置的時候查出來的
就像你設置了一個對象,然后某個條件觸發了事件,被調用了,然后拋了異常,他會顯示你是什么時候設值的嗎?你不調用又不會錯
再來個例子,假如你啟動了一個沒注冊的Activity,拋的異常是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml?
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
你看,他也沒寫出來錯誤的行數,但是你看到這個,錯誤應該不難找到吧
IDE又不是萬能的,經驗問題嘛,有時候還是得靠自己啊

#13


引用 12 樓 xw13782513621 的回復:
Quote: 引用 3 樓 hanxiduo9296 的回復:

 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


因為這個錯誤是系統拋出來的,是他在檢查參數的時候發現錯誤然后拋出來的,並不是你在設置的時候查出來的
就像你設置了一個對象,然后某個條件觸發了事件,被調用了,然后拋了異常,他會顯示你是什么時候設值的嗎?你不調用又不會錯
再來個例子,假如你啟動了一個沒注冊的Activity,拋的異常是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml?
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
你看,他也沒寫出來錯誤的行數,但是你看到這個,錯誤應該不難找到吧
IDE又不是萬能的,經驗問題嘛,有時候還是得靠自己啊

典型的被JAVA語言的優點宣傳 給禍害的一位;要相信自已的判斷,不要太相信人家的宣傳!如果這么容易,你期望的薪水能高嗎?反思下!!

#14


引用 13 樓 alexxm_001 的回復:
Quote: 引用 12 樓 xw13782513621 的回復:

Quote: 引用 3 樓 hanxiduo9296 的回復:

 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


因為這個錯誤是系統拋出來的,是他在檢查參數的時候發現錯誤然后拋出來的,並不是你在設置的時候查出來的
就像你設置了一個對象,然后某個條件觸發了事件,被調用了,然后拋了異常,他會顯示你是什么時候設值的嗎?你不調用又不會錯
再來個例子,假如你啟動了一個沒注冊的Activity,拋的異常是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml?
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
你看,他也沒寫出來錯誤的行數,但是你看到這個,錯誤應該不難找到吧
IDE又不是萬能的,經驗問題嘛,有時候還是得靠自己啊

典型的被JAVA語言的優點宣傳 給禍害的一位;要相信自已的判斷,不要太相信人家的宣傳!如果這么容易,你期望的薪水能高嗎?反思下!!



好的吧,確實一年了 啥也沒進步,好頹廢。。。 謝謝了

#15


引用 12 樓 xw13782513621 的回復:
Quote: 引用 3 樓 hanxiduo9296 的回復:

 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


因為這個錯誤是系統拋出來的,是他在檢查參數的時候發現錯誤然后拋出來的,並不是你在設置的時候查出來的
就像你設置了一個對象,然后某個條件觸發了事件,被調用了,然后拋了異常,他會顯示你是什么時候設值的嗎?你不調用又不會錯
再來個例子,假如你啟動了一個沒注冊的Activity,拋的異常是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml?
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
你看,他也沒寫出來錯誤的行數,但是你看到這個,錯誤應該不難找到吧
IDE又不是萬能的,經驗問題嘛,有時候還是得靠自己啊



也就是正常的現象。。 確實,,, 但是還有點納悶,我相同的方式 去制造一個異常,缺能定位到。。。 那就結帖了

#16


引用 14 樓 hanxiduo9296 的回復:
Quote: 引用 13 樓 alexxm_001 的回復:

Quote: 引用 12 樓 xw13782513621 的回復:

Quote: 引用 3 樓 hanxiduo9296 的回復:

 Intent intent = getIntent();
        Class fragmentClass = (Class) intent.getSerializableExtra(Configs.ArgumentFragment.SKIPFRAGMENT);
        Bundle bundle = intent.getBundleExtra(Configs.ArgumentBundle.ARGUMENTBUNDLE);

確實我傳遞了參數, 傳遞的   class 類 有問題嗎。。。


因為這個錯誤是系統拋出來的,是他在檢查參數的時候發現錯誤然后拋出來的,並不是你在設置的時候查出來的
就像你設置了一個對象,然后某個條件觸發了事件,被調用了,然后拋了異常,他會顯示你是什么時候設值的嗎?你不調用又不會錯
再來個例子,假如你啟動了一個沒注冊的Activity,拋的異常是
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hp.myapplication/com.example.hp.myapplication.MainActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {/}; have you declared this activity in your AndroidManifest.xml?
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                     at android.os.Looper.loop(Looper.java:135)
你看,他也沒寫出來錯誤的行數,但是你看到這個,錯誤應該不難找到吧
IDE又不是萬能的,經驗問題嘛,有時候還是得靠自己啊

典型的被JAVA語言的優點宣傳 給禍害的一位;要相信自已的判斷,不要太相信人家的宣傳!如果這么容易,你期望的薪水能高嗎?反思下!!



好的吧,確實一年了 啥也沒進步,好頹廢。。。 謝謝了



不對不對,, 大哥,xml的錯誤 確實是不會定位到具體位置吧,然而沒有注冊清單文件,就屬於xml 里面少寫了,當然不會定位到里面告訴你 xml有問題了。。。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com