Android के लिए ग्रहण में Admob त्रुटि: configChanges


131

ग्रहण मुझे Android पर एक त्रुटि दे रहा है: मेरे AndroidManifest.xml में configChanges लाइन:

<activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

त्रुटि यह है:

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

अगर मैं केवल keyboard|keyboardHidden|orientationकोई त्रुटि नहीं छोड़ता , लेकिन कंपाइलर 4 शेष के लिए पूछता है जब मैं कोशिश करता हूं और निर्माण करता हूं।

मैं उपयोग कर रहा हूं GoogleAdMobAdsSDK-4.3.1

कोई विचार?

संपादित करें: मैं इसे अपने बदलकर काम कर मिल गया project.properties ( default.properties करने के लिए फ़ाइल एसडीके के निचले तो 14 पर):

# Project target.
target=android-14

और मेरे SDK प्रबंधक में SDK प्लेटफ़ॉर्म Android 4.0 - संशोधन 14 स्थापित है।

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


आप किस Android संस्करण का उपयोग करते हैं?
हेफ़रवुल्फ़

मिन एसडीके संस्करण 7 - एंड्रॉइड 2.1
मार्क कैमरून

मैंने लक्ष्य को 13 में बदलने की कोशिश की, लेकिन यह काम नहीं कर रहा है .. क्या कारण हो सकता है?
अनिरुद्ध

? @anirudhmaddy आप का उपयोग किया था: | keyboardHidden | उन्मुखीकरण | screenLayout | uiMode | screenSize | "एंड्रॉयड configChanges =" कुंजीपटल smallestScreenSize "या कम एक आप 13 के ऊपर अपने लक्ष्य को बदलने और लंबे समय तक configChanges उपयोग करते हैं, यह काम करना चाहिए।
Gürcan Kavakçı

@ gurcan15 अब अपना काम कर रहा है।
अनिरुद्ध

जवाबों:


74

सरल उत्तर: उल्लिखित कॉन्फ़िगरेशन परिवर्तन एंड्रॉइड 2.1 में समर्थन नहीं करते हैं, यहां एक नज़र डालें:

http://developer.android.com/guide/topics/manifest/activity-element.html#config

जैसे uiMode को एपीआई स्तर 8 की आवश्यकता होती है।

आधिकारिक AdMob प्रलेखन से:

आवश्यकताएँ

Android के लिए Google AdMob विज्ञापन एसडीके को Android 1.5 या बाद के संस्करण की आवश्यकता है। सुनिश्चित करें कि आपके पास Android SDK की नवीनतम प्रति है और आप कम से कम Android v3.2 (Android-13 के लिए default.properties में लक्ष्य निर्धारित) के खिलाफ संकलन कर रहे हैं

यहाँ देखें: https://developers.google.com/admob/android/quick-start

इसलिए मुझे लगता है कि आपका टूल संस्करण कम से कम 13 संस्करण में अपडेट नहीं हुआ है।


मैं <uses-sdk android:minSdkVersion="7"/>संस्करण 8, 9, 10, 11, 12 में बदल गया ... अभी भी त्रुटि है ... लाइन को हटाने की भी कोशिश की और यह अभी भी मुझे त्रुटि देता है।
मार्क कैमरून

9
स्क्रीनसाइज़ और छोटी स्क्रीनस्क्रीन केवल एपीआई स्तर 13 में समर्थित हैं, जिसका अर्थ है हनीकॉम्ब, क्या आप सुनिश्चित हैं कि आपको उनकी आवश्यकता है? जैसा कि वे काफी हनीकॉम्ब विशिष्ट हैं।
हेफ़रवुल्फ़

1
अगर मैं उन्हें घोषित नहीं करता हूं तो मुझे यह लॉगकैट में मिलता है: The android:configChanges value of the com.google.ads.AdActivity must include screenLayout. The android:configChanges value of the com.google.ads.AdActivity must include uiMode. The android:configChanges value of the com.google.ads.AdActivity must include screenSize. The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize. You must have AdActivity declared in AndroidManifest.xml with configChanges.और जहां विज्ञापन का मतलब है कि मुझे एक ब्लैक बॉक्स मिलेगा जिसमें आखिरी त्रुटि संदेश लिखा होगा, जिसमें लाल रंग में लिखा होगा।
मार्क कैमरून

1
मैंने अपनी प्रतिक्रिया में SDK से एक महत्वपूर्ण नोट जोड़ा है।
हेफ़रवुल्फ़

ठीक है मेरा default.properties का लक्ष्य android-7 है, मैं 13 में बदलता हूं, और यह कहता है Unable to resolve target 'android-13'। मेरे पास "एसडीके मैनेजर" में "एंड्रॉइड एसडीके टूल्स, रिविजन 13" है, हालांकि ...
मार्क कैमरून

86

आसान समाधान: (और ना आपको मिन-एसडीके मूल्य बदलने की आवश्यकता नहीं है !!)

चरण 1: "प्रोजेक्ट.प्रॉपीटीज़" फ़ाइल बदलें

# Project target.
target=android-13

चरण 2: ग्रहण में

Project > Clean... > (select your project) > Clean projects selected below > OK

वास्तविक उदाहरण के साथ पूर्ण विवरण के लिए इस ट्यूटोरियल का उपयोग करें http://www.monkeycoder.co.nz/Community/posts.php?topic=1121

चियर्स!


1
अति उत्कृष्ट! मैं भी google api वर्जन में sdk7 का उपयोग कर रहा था। इसलिए मैंने # प्रोजेक्ट लक्ष्य का उपयोग किया। लक्ष्य = Google Inc. :Google API: 13 मेरी संपत्तियों की फ़ाइल में।
काम किया

18

ग्रहण का उपयोग करने वालों के लिए एक आसान तरीका है: बाएं "पैकेज एक्सप्लोरर" फलक में अपने प्रोजेक्ट फ़ोल्डर पर राइट क्लिक करें और गुण -> एंड्रॉइड -> और "प्रोजेक्ट बिल्ड लक्ष्य" सूची में एपीआई 13 या ऊपर की जांच करें पर क्लिक करें।

नोट: यह संपादन के समान है project.propertiesजो वैसे भी स्वतः-जनरेट किया जाता है।

यह एंड्रॉइड 3.2 एसडीके के खिलाफ आपकी परियोजना का निर्माण करेगा जिसमें वे शब्द शामिल हैं जो पहले अपरिचित थे।

आप अपने android:minSdkVersionऔर targetSdkVersionमूल्यों को अपने Manifest.xml में छोड़ सकते हैं ।

हालाँकि , अगर आपने अपना targetSdkVersionएपीआई 12 या उससे कम सेट नहीं किया है (या इसे बिल्कुल सेट नहीं करते हैं) तो एंड्रॉइड सिस्टम यह मान लेगा कि android:configChangesमान screenSizeऔर smallestScreenSize(जो एपीआई 13 में पेश किए गए थे) के लिए जिम्मेदार हैं और इस तरह होगा अपनी गतिविधि को नष्ट करने-पुनः आरंभ करने की अनुमति दी। यदि आप इससे बचना चाहते हैं, तो आपको उन शर्तों को अपने अन्य <activity>टैग में शामिल करना चाहिए (जो शायद keyboard|keyboardHidden|orientationअब तक केवल था )।

हालाँकि, यदि आपका एप्लिकेशन API स्तर 12 या उससे कम लक्ष्य करता है, तो आपकी गतिविधि हमेशा इस कॉन्फ़िगरेशन परिवर्तन को संभालती है (यह कॉन्फ़िगरेशन परिवर्तन आपकी गतिविधि को पुनरारंभ नहीं करता है, यहां तक ​​कि एंड्रॉइड 3.2 या उच्चतर डिवाइस पर चलने पर भी)।

उद्धरण यहाँ से है


3

मुझे भी यही समस्या थी इसलिए मैं यहां आया।
मैंने https://developers.google.com/admob/android/quick-start से नमूना कोड डाउनलोड किया है , मुझे अभी भी ऊपर दिए गए सभी उत्तरों के साथ समस्या थी, इसलिए मैंने एक ही प्रशंसा पत्र का उपयोग किया, वे नमूना परियोजना में पेश करते हैं। बिल्ड जार को फिर से करें, लक्ष्य को बदल दिया android-15और उसी लाइन का उपयोग किया जो वे उपयोग करते हैं:

<activity android:name="com.google.ads.AdActivity" 
              android:configChanges="keyboard|keyboardHidden|orientation"/>

और यह काम करता है!


मुझे लगता है कि यह रास्ता तय करना है। क्योंकि, मेरे लिए, चूंकि Asynctasks एपीआई से टूट गया है (जो कि वे एक समानांतर एक के बजाय अब एक अनुक्रमिक निष्पादक का उपयोग करते हैं क्योंकि उनके पास समानांतर एक के साथ 'मुद्दे' थे), मैं इसके बजाय एक पुराने लक्ष्य का उपयोग करता हूं हाथ से संशोधित करने की तुलना में। डिफ़ॉल्ट निष्पादक ...
राडु

0

क्या तुमने प्रयोग किया android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

या छोटा है? यदि आप अपना लक्ष्य 13 से ऊपर बदलते हैं और लंबे समय तक कॉन्फ़िगरचेंज एक (जो मैंने लिखा है) का उपयोग करते हैं, तो यह काम करना चाहिए।



-4

14 अक्टूबर, 2011 के बाद बनाए गए सभी नए एंड्रॉइड ऐप्स के लिए एक AdMob SDK की आवश्यकता होगी जो 15 मार्च 2011 को या उसके बाद जारी किया गया था। यह एंड्रॉइड के लिए 4.0.2+ संस्करण से मेल खाता है। यदि आपने हमारी आधिकारिक डाउनलोड साइट से लाइब्रेरी डाउनलोड की है, तो आप पहले से ही सेट हैं। अन्यथा आपके पास AdMob SDK का एक पुराना संस्करण हो सकता है जो 15 मार्च, 2011 से पहले जारी किया गया था, और जब तक आप अपना SDK अपडेट नहीं करते, तब तक आपके नए ऐप को कोई विज्ञापन इंप्रेशन नहीं मिलेगा।


आप बस इसे समझे बिना इंटर नेट से कॉपी-पेस्ट किया हुआ सामान। इससे वास्तविक समस्या की कोई प्रासंगिकता नहीं है।
तोरबेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.