2010-07-19 7 views
37

मैं इस प्रकार एक कस्टम आवेदन वर्ग को परिभाषित बनाने के लिए कोशिश कर रहा हूँ:एंड्रॉयड: java.lang.IllegalAccessException जब एक कस्टम उपयोग करने का प्रयास "ऐप्लिकेशन" वर्ग

  1. MyApp
  2. बुलाया आवेदन के एक खाली उपवर्ग बनाने
  3. प्रकट में, अपने आवेदन के लिए निर्दिष्ट एंड्रॉयड :: नाम:, <application android:name=".MyApp" ...

हालांकि जब मैं अपने अनुप्रयोग चलाने के लिए प्रयास करते हैं, मैं: java.lang.RuntimeException: Unable to instantiate application com.test.MyApp java.lang.IllegalAccessException: access to class not allowed

उत्तर

100

सुनिश्चित करें कि आपकी कस्टम कक्षा public है, public शून्य-तर्क कन्स्ट्रक्टर है, और यह कि सुपरक्लस कन्स्ट्रक्टर के लिए कन्स्ट्रक्टर चेन है।

+2

मैं एक समान अपवाद में आया जहां मैं एक सेवा शुरू करने की कोशिश कर रहा था। यह पता चला कि सेवा वर्ग गलती से निजी पैकेज था और इस प्रकार आपके समाधान ने मुझे समस्या खोजने में मदद की, धन्यवाद! – JonnyBoy

2

मैं CommonsWare से सहमत हूं। यदि आप अपनी परियोजना के लिए कस्टम एप्लिकेशन को परिभाषित करने के लिए android.app. आवेदन का विस्तार करते हैं, तो सुनिश्चित करें कि आपने अपनी कक्षा को सार्वजनिक और सार्वजनिक नो-एग्री कन्स्ट्रक्टर के रूप में चिह्नित किया है।

हालांकि, android.app.Application API पर इसका उल्लेख है कि, सामान्य रूप से एप्लिकेशन को उपclass करने की आवश्यकता नहीं है। ज्यादातर स्थितियों में, स्थिर सिंगलेट्स एक ही कार्यक्षमता को अधिक मॉड्यूलर तरीके से प्रदान कर सकते हैं।

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

चीयर्स।

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