2017-09-19 53 views
6

मुझे अपने ऐप में क्रैश होता है। यह कई उपयोगकर्ताओं और ActivityThread.java विधि रिपोर्ट साइज कॉन्फ़िगरेशन में इसके कई स्थानों के लिए होता है। मुझे नहीं पता कि इसका क्या उपयोग किया जाता है, और यह क्यों जम जाता है।Android ActivityThread.reportSizeConfigurations ऐप को ब्लैक स्क्रीन से फ्रीज करने का कारण बनता है और फिर क्रैश

स्पलैश स्क्रीन के बाद फ्रीज ठीक होता है (जब मुख्य गतिविधि शुरू होती है) और केवल ऐप के उन्नयन पर हो रहा है। यदि आप एप्लिकेशन को पुनर्स्थापित करते हैं तो समस्या दूर हो जाती है। समस्या यह है कि, मैं सभी उपयोगकर्ताओं को एप्लिकेशन को पुनर्स्थापित करने के लिए नहीं कह सकता ...

क्या किसी को पता है कि इसका कारण क्या हो सकता है और क्यों? ऐसा लगता है कि कुछ डीबी हैंडलिंग से जुड़ा हुआ हो सकता है, लेकिन यह सिर्फ एक अनुमान है।

यहाँ

Crashlytics से स्टैकट्रेस: ​​

Fatal Exception: java.lang.IllegalArgumentException: reportSizeConfigurations: ActivityRecord not found for: Token{a28a055 null} 
    at android.os.Parcel.readException(Parcel.java:1697) 
    at android.os.Parcel.readException(Parcel.java:1646) 
    at android.app.ActivityManagerProxy.reportSizeConfigurations(ActivityManagerNative.java:8342) 
    at android.app.ActivityThread.reportSizeConfigurations(ActivityThread.java:3049) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2992) 
    at android.app.ActivityThread.-wrap14(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6682) 
    at java.lang.reflect.Method.invoke(Method.java) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

यहाँ Play स्टोर 'ANR की & दुर्घटनाओं' से स्टैकट्रेस: ​​

"main" prio=5 tid=1 TimedWaiting 
    | group="main" sCount=1 dsCount=0 obj=0x74864f70 self=0x7f8b896a00 
    | sysTid=28578 nice=0 cgrp=default sched=0/0 handle=0x7f8f832a98 
    | state=S schedstat=(237746089 66838748 1069) utm=18 stm=5 core=6 HZ=100 
    | stack=0x7fcdbf9000-0x7fcdbfb000 stackSize=8MB 
    | held mutexes= 

    at java.lang.Object.wait! (Native method) 
- waiting on <0x0c54fb7b> (a java.lang.Object) 
    at java.lang.Thread.parkFor$ (Thread.java:2127) 
- locked <0x0c54fb7b> (a java.lang.Object) 
    at sun.misc.Unsafe.park (Unsafe.java:325) 
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201) 
    at android.database.sqlite.SQLiteConnectionPool.waitForConnection (SQLiteConnectionPool.java:670) 
    at android.database.sqlite.SQLiteConnectionPool.acquireConnection (SQLiteConnectionPool.java:348) 
    at android.database.sqlite.SQLiteSession.acquireConnection (SQLiteSession.java:894) 
    at android.database.sqlite.SQLiteSession.prepare (SQLiteSession.java:586) 
    at android.database.sqlite.SQLiteProgram.<init> (SQLiteProgram.java:58) 
    at android.database.sqlite.SQLiteQuery.<init> (SQLiteQuery.java:37) 
    at android.database.sqlite.SQLiteDirectCursorDriver.query (SQLiteDirectCursorDriver.java:44) 
    at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory (SQLiteDatabase.java:1318) 
    at android.database.sqlite.SQLiteQueryBuilder.query (SQLiteQueryBuilder.java:399) 
    at android.database.sqlite.SQLiteQueryBuilder.query (SQLiteQueryBuilder.java:294) 
    at com.norwegian.travelassistant.managers.storagemanager.StorageManager.query (StorageManager.java:1011) 
    at com.norwegian.travelassistant.managers.storagemanager.StorageManager.a (StorageManager.java:1218) 
- locked <0x00f0bd98> (a java.lang.Object) 
    at com.norwegian.travelassistant.managers.storagemanager.StorageManager.a (StorageManager.java:1205) 
    at com.norwegian.travelassistant.managers.storagemanager.StorageManager.F (StorageManager.java:1812) 
    at com.norwegian.travelassistant.managers.e.a (LanguageManager.java:63) 
    at com.norwegian.travelassistant.managers.e.a (LanguageManager.java:84) 
    at com.norwegian.travelassistant.tabbar.TabsActivity.onCreate (TabsActivity.java:141) 
    at android.app.Activity.performCreate (Activity.java:6705) 
    at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1119) 
    at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2664) 
    at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2772) 
    at android.app.ActivityThread.-wrap12 (ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1515) 
    at android.os.Handler.dispatchMessage (Handler.java:102) 
    at android.os.Looper.loop (Looper.java:241) 
    at android.app.ActivityThread.main (ActivityThread.java:6217) 
    at java.lang.reflect.Method.invoke! (Native method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:865) 
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:755) 

करें यदि आप अधिक जानकारी की आवश्यकता है

+0

ऐसा लगता है कि यह मुख्य धागे में डेटाबेस I/O से जुड़ा हुआ है। मुझे पहले कभी यह समस्या नहीं आई है, लेकिन शायद कुछ बदल गया है ... – Otziii

+0

मेरा फिक्स डेटाबेस को हटाना और फिर से समझना था। एक बदसूरत फिक्स, लेकिन यह काम किया। माना जाता है कि बहुत से उपयोगकर्ताओं को रिलीज के साथ दूषित डेटाबेस मिल गए। क्यों, मुझे नहीं पता ... – Otziii

उत्तर

5

बता दुर्घटना है आपकी गतिविधि के लॉन्च से पहले, आपकी सेवा पर एएनआर के कारण।

यदि कोई उपयोगकर्ता आपकी सेवा को लंबे समय से चलने वाले कार्य के दौरान अपना ऐप लॉन्च करता है, तो गतिविधि तब तक नहीं बनाई जाएगी जब तक सेवा समाप्त होने पर कार्य नहीं हो जाता। यह प्रतीक्षा आपके ऐप को लॉन्च करने वाले उपयोगकर्ता के लिए विचित्र लग सकती है, और फिर वे आपके ऐप को टास्क स्विचर में स्वाइप कर देते हैं, जो गतिविधि प्रबंधक से कार्य रिकॉर्ड हटा देता है (लेकिन इस समय प्रक्रिया अभी भी जीवित है)।

जब सेवा पर लंबे समय तक चलने वाला कार्य अंततः लौटता है, तो यह लॉन्च होने से गतिविधि को अनब्लॉक करता है, लेकिन इस समय गतिविधि ActivityRecord not found अपवाद फेंक देगी क्योंकि इसे पहले ही हटा दिया गया था।

निम्न अनुक्रम आरेख क्रैश को बेहतर समझा सकता है। enter image description here

क्रेडिट YogiAi, जो मूल रूप this post में इस मुद्दे की जांच की को जाता है।

+0

मुझे नहीं लगता कि यह मेरे मामले में समस्या थी। यदि आप बस लंबे समय तक इंतजार कर रहे थे, तो ऐप दुर्घटनाग्रस्त हो गया। भले ही आपने एप्लिकेशन को "मार" या "स्वाइप" नहीं किया हो। डीबी को दोबारा शुरू करें, इसलिए किसी भी तरह डीबी भ्रष्ट हो गया, और जब मैंने इसे एक्सेस करने का प्रयास किया, तो ऐप जम गया और दुर्घटनाग्रस्त हो गया। मुझे नहीं पता क्यों ... – Otziii

संबंधित मुद्दे