eclipse - Android app - share intent fatal error -


 <कोड> 07-27 11: 29: 26.390: ई / AndroidRuntime (691): गंभीर अपवाद: मुख्य 07-27 11: 29: 26.390: ई / AndroidRuntime (691): java.lang.NullPointerException 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime (691): com.androidma.voteq.MainActivity.onCreateOptionsMenu पर (MainActivity.java:271 ) 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime (691): 29:: 26.390: ई / AndroidRuntime (691): एंड्रॉयड पर android.app.Activity.onCreatePanelMenu (Activity.java:2444) 07-27 नवम्बर में .support.v4.app.FragmentActivity.onCreatePanelMenu (FragmentActivity.java:225) 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime (691): android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu (ActionBarActivity.java पर: 233) 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime (691): पर android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu (ActionBarActivityDelegateICS.java:146) 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime ( 691): एंड्रॉइड। Support.v7.app.ActionBarActivity.onCreatePanelMenu (ActionBarActivity.java20000) 07-27 11 : 29: 26.390: ई / AndroidRuntime (691): android.support.v7.app.ActionBarActivityDelegateICS $ WindowCallbackWrapper.onCreatePanelMenu (ActionBarActivityDelegateICS.java:293) में 07-27 नवम्बर: 29: 26.390: ई / AndroidRuntime (691): में com.android.internal.policy.impl.PhoneWindow.preparePanel (PhoneWindow.java:388)  

जब मैं कार्रवाई बार के लिए पर "साझा" कार्रवाई डालने की कोशिश की, मेरी ऐप्स क्रैश हो।

समस्या के साथ रेखा यह है

  myShareActionProvider.setShareIntent (myIntent);  

यह वर्ग मेरे आयात में है:

  आयात करें android.support.v7.app.ActionBarActivity;  

अपने मुख्य गतिविधि वर्ग इस तरह शुरू होता है:

  सार्वजनिक वर्ग MainActivity फैली ActionBarActivity { 

मेरी कोड: < / P>

  सार्वजनिक बूलियन पर क्रिएट ऑप्शन मेन्यू (मेनू मेनू) {// मेन्यू को बढ़ाना; यह एक्शन बार में आइटम जोड़ता है यदि यह मौजूद है GetMenuInflater ()। फुलाओ (आर.मेनू। मेन, मेनू); GetMenuInflater ()। फुलाएँ (आर.मेनू। Action_bar_share_menu, मेनू); मेनूइटम आइटम = मेनू.फंडआईटम (आर.डि.मेनू_इटमै_शारे); ShareActionProvider myShareActionProvider = (ShareActionProvider) item.getActionProvider (); आशय myIntent = नया आशय (); startActivity (myIntent); myIntent.setAction (Intent.ACTION_SEND); myIntent.putExtra (Intent.EXTRA_TEXT, "Oylamaya Katil गूगल बनाम एप्पल https://play.google.com/store/apps/details?id=com.google.android.gm&hl=tr!"); myIntent.setType ( "पाठ / सादे"); myShareActionProvider.setShareIntent (myIntent); वापस सच; }  

मेनू फ़ोल्डर में मुख्य। Xml

  & lt; मेनू xmlns: android = "http://schemas.android.com/apk/ Res / android "& gt; & Lt; item android: id = "@ + id / menu_item_share" एंड्रॉइड: showAsAction = "ifRoom" एंड्रॉइड: शीर्षक = "शेयर" एंड्रॉइड: actionProviderClass = "android.widget.ShareActionProvider" / & gt; & Lt; / मेनू & gt;  

एक्शन मैनू शेयर मुनु एक्सएमएल

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & Gt; & Lt; मेनू xmlns: एंड्रॉइड = "http://schemas.android.com/apk/res/android" & gt; & Lt; item android: id = "@ + id / menu_item_share" एंड्रॉइड: showAsAction = "ifRoom" एंड्रॉइड: शीर्षक = "शेयर" एंड्रॉइड: actionProviderClass = "android.widget.ShareActionProvider" / & gt; & Lt; / मेनू & gt;  

जब मैं साझा आशय कोड ब्लॉक का उपयोग करता हूं, तो यह एक और प्रोजेक्ट पर चला जाएगा। मैं घंटों के लिए इसे हल करने में सक्षम नहीं हूं ...

यह मेरी समस्या का हल:

<पूर्व> निजी ShareActionProvider mShareActionProvider; सार्वजनिक बूलियन ऑन क्रेट ऑप्शन मेन्यू (मेनू मेनू) {getMenuInflater ()। फुलाएँ (आर.मेनू। Action_bar_share_menu, मेनू); अंतिम मेन्यूइटम शेयर आईटैम = मेन्यू। एफआईडीआईटीम (आरआईडी। एक्शन_शारे); MShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider (शेयर आईटम); आशय myIntent = नया आशय (); myIntent.setAction (Intent.ACTION_SEND); MyIntent.putExtra (Intent.EXTRA_TEXT, "ओलायामाया कैटील! Google बनाम एप्पल! Https://play.google.com/store/apps/details?id=com.google.android.gm&hl=tr"); myIntent.setType ( "पाठ / सादे"); mShareActionProvider.setShareIntent (myIntent); वापस सच; }

आपके कोड का आधा AppCompat एक्शन बार बैकपोर्ट का उपयोग कर रहा है। आपका कोड का आधा देशी एपीआई स्तर 11+ एक्शन बार कार्यान्वयन का उपयोग कर रहा है यह काम नहीं करेगा एक चुनें और इसके साथ छड़ी।

उद्धरण:

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


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -