2012-10-17 13 views
7

खोलने मैं अपने कोड में इन पंक्तियों के होते हैं:'न आया हुआ अपवाद finalizer द्वारा फेंका' जब MapActivity

// create tab4 
intent = new Intent(this, ActWhereAmI.class) 
     .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
tabspecWhereAmI = tabHost 
     .newTabSpec("tab4") 
     .setIndicator(Utilities.prepareTabView(this,"where am I")) 
     .setContent(intent); 
tabHost.addTab(tabspecWhereAmI); 


public static View prepareTabView(Context context, String text) { 
     View view = LayoutInflater.from(context).inflate(
       R.layout.tab_indicator, null); 
     TextView tv = (TextView) view.findViewById(R.id.tabIndicatorTextView); 
     tv.setText(text); 

     return view; 
    } 

जब आवेदन लाइन tabHost.addTab(tabspecWhereAmI); मैं केवल LogCat में निम्न त्रुटि प्राप्त चलाता है और कार्यक्रम किसी भी समस्या के बिना चलाता है :

10-17 13:38:01.164: W/MapActivity(4815): Recycling dispatcher android_maps_conflict_a[email protected]413c8658 
10-17 13:38:01.171: V/MapActivity(4815): Recycling map object. 
10-17 13:38:01.335: W/MapActivity(4815): Recycling dispatcher android_maps_conflict_a[email protected]413c8658 
10-17 13:38:01.335: V/MapActivity(4815): Recycling map object. 
10-17 13:38:01.554: D/dalvikvm(4815): GC_CONCURRENT freed 776K, 23% free 10286K/13255K, paused 2ms+7ms 
10-17 13:38:01.554: E/System(4815): Uncaught exception thrown by finalizer 
10-17 13:38:01.554: E/System(4815): java.lang.IllegalStateException: Binder has been finalized! 
10-17 13:38:01.554: E/System(4815):  at android.os.BinderProxy.transact(Native Method) 
10-17 13:38:01.554: E/System(4815):  at android.database.BulkCursorProxy.close(BulkCursorNative.java:288) 
10-17 13:38:01.554: E/System(4815):  at android.database.BulkCursorToCursorAdaptor.close(BulkCursorToCursorAdaptor.java:133) 
10-17 13:38:01.554: E/System(4815):  at android.database.CursorWrapper.close(CursorWrapper.java:49) 
10-17 13:38:01.554: E/System(4815):  at android.content.ContentResolver$CursorWrapperInner.close(ContentResolver.java:1591) 
10-17 13:38:01.554: E/System(4815):  at android.content.ContentResolver$CursorWrapperInner.finalize(ContentResolver.java:1604) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:182) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Thread.run(Thread.java:856) 
10-17 13:38:01.554: E/System(4815): Uncaught exception thrown by finalizer 
10-17 13:38:01.554: E/System(4815): java.lang.IllegalStateException: Binder has been finalized! 
10-17 13:38:01.554: E/System(4815):  at android.os.BinderProxy.transact(Native Method) 
10-17 13:38:01.554: E/System(4815):  at android.database.BulkCursorProxy.close(BulkCursorNative.java:288) 
10-17 13:38:01.554: E/System(4815):  at android.database.BulkCursorToCursorAdaptor.close(BulkCursorToCursorAdaptor.java:133) 
10-17 13:38:01.554: E/System(4815):  at android.database.CursorWrapper.close(CursorWrapper.java:49) 
10-17 13:38:01.554: E/System(4815):  at android.content.ContentResolver$CursorWrapperInner.close(ContentResolver.java:1591) 
10-17 13:38:01.554: E/System(4815):  at android.content.ContentResolver$CursorWrapperInner.finalize(ContentResolver.java:1604) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:182) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:168) 
10-17 13:38:01.554: E/System(4815):  at java.lang.Thread.run(Thread.java:856) 

यह अपवाद ActWhereAmI की onCreate(...) विधि से पहले होता है। मेरी समस्या इस प्रश्न के समान है: Uncaught exception thrown by finalizer

मुझे यह त्रुटि क्यों मिल रही है और मैं इसे कैसे हल कर सकता हूं?

+0

विधि 'utilities.prepareTabView() 'का तरीका क्या है? – krtek

+0

आपकी गतिविधि एक मानचित्र गतिविधि है? हो सकता है कि यह MapActivity से संबंधित है जिसका उपयोग आप – nandeesh

+0

पर पोस्ट किए गए कोड से संबंधित नहीं हैं @ नंदेश हां यह एक नक्शा सक्रियता है। – breceivemail

उत्तर

4

क्या आप डीबी से संबंधित कुछ भी कर रहे हैं? यह लगभग किसी भी गतिविधि की तरह लगता है जो डीबी सामान कर रहा है कर्सर (मैन्युअल रूप से या स्वचालित रूप से) बंद कर दिया है और फिर इसे अंतिम रूप देने() में कुछ करने की कोशिश की है, या कर्सर एंड्रॉइड ओएस द्वारा बंद किया जा रहा है।

# 2 मामले में, इसका मतलब यह हो सकता है कि आपको कर्सर को मैन्युअल रूप से बंद करना पड़ सकता है। यदि ऐसा है, लेकिन यदि आपको गतिविधि को खोलने की आवश्यकता है, तो इसे रीज़्यूमे/ऑन पॉज़ या ऑनस्टार्ट/ऑनस्टार्ट

किसी और ने उल्लेख किया है कि ऐसा हो सकता है क्योंकि आप उनमें से दो को एक ही समय में खोलने की कोशिश कर रहे हैं

1

यह किसी भी तरह CursoronStop() या onDestroy() से संबंधित है। आप closeTab() या closeAllTabs() पर कॉल करके इसे आमंत्रित कर सकते हैं।

आशा है कि इससे मदद मिलेगी।

1

किसी अन्य गतिविधि पर जाने से पहले कर्सर के साथ किए जाने के बाद कर्सर को बंद करना याद रखें।

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