2012-12-09 16 views
5

के साथ संकलन त्रुटि मैं डेवलपर्स.android.com पर बुनियादी ट्यूटोरियल का पालन कर रहा था और DisplayMessageActivity नामक गतिविधि बनाकर आया था। ट्यूटोरियल में दिखाए गए सभी विनिर्देशों के साथ यह एक खाली गतिविधि है। FYI करें, मैं मिन एसडीके = एपीआई 8 उपयोग कर रहा हूँ, लक्ष्य एसडीके = एपीआई 16, = एपीआई के साथ संकलित 10एपीआई 10

अगली बात वहाँ दो त्रुटियाँ हैं वह यह है कि:

  1. "विधि getActionBar() अपरिभाषित है प्रकार DisplayMessageActivity के लिए
  2. "घर या नहीं सुलझाया जा सकता है एक क्षेत्र नहीं है"

मैं जो एक और समस्या के लिए कहा जाता है 14 करने के लिए एपीआई को बदलने की कोशिश की, यह न्यूनतम API बनना चाहता है 11.

यह इन समस्याओं को हल करता है, लेकिन मुख्य समस्या यह है कि अभी भी कई डिवाइस जिंजरब्रेड या शायद फ्रोयो का उपयोग करते हैं। क्या मैं उनके लिए नहीं लिख सकता? क्या मुझे उच्च जाना है? उनके लिए कैसे लिखें?

+0

हां, कोड इस ट्यूटोरियल से बिल्कुल समान है http://developer.android.com/training/basics/firstapp/starting-activity.html –

उत्तर

5

सबसे पहले, आप यह सुनिश्चित करना चाहते हैं कि आप एंड्रॉइड के नवीनतम संस्करण के खिलाफ संकलित हैं। आपको अपना एसडीके संस्करण अपडेट करना चाहिए क्योंकि आप एपीआई 10 के लिए संकलन कर रहे हैं लेकिन लक्ष्यीकरण 16. यदि आप ऐसा करते हैं तो सामग्री टूट सकती है, इसलिए सुरक्षित रहने के लिए अपडेट करना सबसे अच्छा है। इसका मतलब ग्रहण में अपनी प्रोजेक्ट पर राइट क्लिक करना, गुणों पर क्लिक करना और फिर एंड्रॉइड पर क्लिक करना है। वहां मौजूद उच्चतम संस्करण API को देखें। यदि आपके पास नवीनतम संस्करण है, तो यह एंड्रॉइड 4.2 है। फिर अपने AndroidManifest.xml में, आपने जो भी चुना है, उसके लिए android:targetSdkVersion सेट करें (मेरा केस एपीआई 17)।

enter image description here

यह आपके ऐप पर मूल रूप से JellyBean को मधुकोश चला सकते हैं कि यह सुनिश्चित करना चाहिए। हालांकि, यह ऐप कम से कम froyo पर चलना चाहता है। यह अगला भाग आपके ऐप को सभी उपकरणों पर चलाने की अनुमति देगा।

इस तरह की एक विधि बनाएं:

@TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    private void setupActionBar() { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

यह जो एपीआई उस पर चल रहा है देखने के लिए जाँच करता है और केवल यह मधुकोश है और इसके बाद के संस्करण, कार्रवाई बार सक्षम बनाता है। इसे onCreate() से कॉल करें आपको 0Aमें getActionBarCall को बाहर निकालना होगा क्योंकि इसकी आवश्यकता नहीं है।

घर के सक्षम होने के नाते, यह शायद एक गलत परियोजना लक्ष्य हो सकता है या आप android.R.id.home लिखना भूल गए और इसके बजाय R.id.home लिखा।

आखिरकार इन सभी परिवर्तनों के साथ आपको अपनी परियोजना (परियोजना -> साफ) साफ करनी चाहिए।

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