अपने ऐप के प्रकटन में Google Play सेवाओं का संस्करण जोड़ना?


88

मैं इस ट्यूटोरियल का अनुसरण कर रहा हूं: https://developers.google.com/maps/documentation/android/start#overview, Google एसडीके को एंड्रॉइड एसडीके के ऐप में कैसे जोड़ें, इस पर।

एकमात्र समस्या जो मुझे प्रतीत हो रही है वह इस बिट के दौरान है (मैंने बिना किसी त्रुटि के सब कुछ किया है):

Edit your application's AndroidManifest.xml file, and add the following declaration within the

 <application> element. This embeds the version of Google Play services that the app was compiled with.

 <meta-data
 android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />

The error is:
   No resources found that match the given name (at 'value' with value '@integer/    
   google_play_services_version').

मैंने इस समस्या के समाधान के लिए इस व्यक्ति के समाधान का अनुसरण करने की कोशिश की है: Google Play Services लाइब्रेरी का अद्यतन और अनुपलब्ध प्रतीक @ पूर्णांक / google_play_site_ortersion

लेकिन मुझे अभी भी वही त्रुटि मिल रही है। कोई मदद कृपया?


यदि ग्रहण आपको यह करने की कोशिश करने में परेशानी देता है: stackoverflow.com/a/19990244/166921
Kamil Szot

जवाबों:


100

यह संभवत: यह है कि आपकी लाइब्रेरी ठीक से प्रोजेक्ट से जुड़ी नहीं है या आपके पास पुराने Google-play-Services लाइब्रेरी का संस्करण है, इसलिए विरोधाभास दिखाई देता है और Eclipse बेवकूफ हो गया है ..: S

नहीं, आपको integers.xml में कुछ भी जोड़ने की आवश्यकता नहीं है। जब आप Google- प्ले-सर्विसेस लाइब्रेरी को अपने प्रोजेक्ट रेफरेंस से android:value="@integer/google_play_services_version"ठीक से जोड़ेंगे तो आप मिल जाएंगे और आप जाने के लिए तैयार हैं। जब आप अपने प्रोजेक्ट में लाइब्रेरी जोड़ते हैं, तो एक और अधिक साफ-सुथरा इतना मजेदार ग्रहण पर्यावरण स्वीप-आउट चीजें ठीक से करें।

यदि आप अगले गेम संस्करण के समय इस नंबर को हार्डकोड करते हैं तो आपको इसे अपडेट करने की आवश्यकता होगी। और अगर आप यह भूल जाते हैं, तो आप फिर से बग की तलाश में समय बिताएंगे:: एस

उम्मीद है कि यह मदद की। ;)


1
हां, एंड्रॉइड स्टूडियो पर मैंने एक मॉड्यूल (लाइब्रेरी के रूप में नहीं) के रूप में Google Play सेवा को जोड़ा है, लेकिन मैं इस मॉड्यूल को अपने प्रोजेक्ट मॉड्यूल में जोड़ना भूल गया हूं जहां मैनिफ़ेस्ट फ़ाइल है। इससे समस्या हल हो गई :)
रागाइसिस 30'13

18
धन्यवाद, इसने मेरा मुद्दा ठीक कर दिया। Eclipse / ADT में एक लाइब्रेरी प्रोजेक्ट को संदर्भित करने के लिए एक बेवकूफ-प्रूफ चरण-दर-चरण मार्गदर्शिका के लिए, कृपया Google टूल डॉक्स देखें । मैं स्पष्ट रूप से एक बेवकूफ हूं, क्योंकि मैं "जावा बिल्ड पाथ: लाइब्रेरी" के तहत पुस्तकालय को जोड़ने की कोशिश कर रहा था - कोई काम नहीं।
जेफ्रो

देर से जवाब के लिए क्षमा करें, लेकिन हाँ, यह समस्या थी, पुस्तकालय मेरे प्रोजेक्ट से ठीक से जुड़ा नहीं था!
Adz

1
चींटी के लिए कैसे करें?
Dzmitry Lazerka

2
यदि यह मदद करता है, तो मुझे एंड्रॉइड स्टूडियो में कुछ और कदम उठाने होंगे। के लिए चला गया: परियोजना संरचना -> अनुप्रयोग -> निर्भरता -> पुस्तकालय के लिए जोड़ने के विकल्प के लिए + क्लिक करें -> खेलने-सेवाओं (xxx)। जब मैंने पुनर्निर्माण किया तो मुझे एक त्रुटि मिली और जोड़ा गया पुस्तकालय प्ले-सर्विसेज था ... 0.0। मुझे एक्सट्रा के तहत एसडीके प्रबंधक से Google Play रिपॉजिटरी याद आ रही थी। जब मैं वापस आया और उन चरणों को दोहराया तो लाइब्रेरी में अब एक वास्तविक संस्करण संख्या थी और इसे सफलतापूर्वक बनाया गया था।
नट 3

36

मुझे हल मिल गया।

  • चरण 1: पैकेज एक्सप्लोरर में अपनी परियोजना पर राइट क्लिक करें (ग्रहण में बाईं ओर)
  • चरण 2: गोटो एंड्रॉइड।
  • चरण 3: लाइब्रेरी अनुभाग में लाइब्रेरी जोड़ें ... (google-play-services_lib)
    बटों के नीचे देखें

    • लाइब्रेरी प्रोजेक्ट को कॉपी करें

    <android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/

    • उस स्थान पर जहां आप अपने Android एप्लिकेशन प्रोजेक्ट बनाए रखते हैं। यदि आप ग्रहण का उपयोग कर रहे हैं, तो पुस्तकालय परियोजना को अपने कार्यक्षेत्र में आयात करें। फ़ाइल> आयात पर क्लिक करें, एंड्रॉइड> मौजूदा एंड्रॉइड कोड को कार्यक्षेत्र में चुनें, और इसे आयात करने के लिए लाइब्रेरी प्रोजेक्ट की प्रतिलिपि ब्राउज़ करें।
    • अधिक के लिए यहां क्लिक करें
  • चरण 4: लागू करें पर क्लिक करें
  • चरण 5: ठीक पर क्लिक करें
  • चरण 6: आपको पैकेज एक्सप्लोरर से रीफ्रेश करें।
  • चरण 7: आप देखेंगे कि त्रुटि हो गई है।

30

से यहाँ

आपको उस लाइब्रेरी की एक प्रति संदर्भित करनी चाहिए, जिसे आपने अपने विकास कार्यक्षेत्र में कॉपी किया है - आपको लाइब्रेरी को सीधे Android SDK निर्देशिका से संदर्भित नहीं करना चाहिए।

मुझे इस त्रुटि का सामना करना पड़ा क्योंकि मैंने एसडीके निर्देशिका से मूल प्रति का संदर्भ दिया था। सुनिश्चित करें कि आप पहले लाइब्रेरी को एंड्रॉइड वर्कस्पेस पर कॉपी करते हैं और केवल इसका संदर्भ देते हैं। ग्रहण में आप प्रोजेक्ट आयात करते समय "प्रोजेक्ट्स को कार्यक्षेत्र में कॉपी करें" की जाँच करके कर सकते हैं।


3
aiaiai, इस बॉक्स को टिक नहीं करने के कारण घंटों बर्बाद ... खुशी है कि मुझे यह उत्तर मिला! Google दस्तावेज़ीकरण में स्पष्ट होना चाहिए।
मारियस उल्लसित

और वह मेरा मुद्दा था, जिस तरह से Google lib के स्रोत फ़ोल्डर को छोड़कर मेरे कार्यक्षेत्र में कॉपी नहीं किया गया था, वह सब कुछ संदर्भित किया गया था
JustADev

इस फिक्स ने मेरे लिए भी काम किया। लेकिन आश्चर्य है कि तकनीकी रूप से अंतर क्या है?
सिवाग

Google को यहां स्क्रीनशॉट / निर्देश अपडेट करने चाहिए: Developers.google.com/+/mobile/android/getting-started
ban-geoengineering

22

एंड्रॉइड स्टूडियो में आप इसे केवल अपने ग्रेड फ़ाइल में जोड़कर इसे ठीक कर सकते हैं:

compile 'com.google.android.gms:play-services:6.5.87'

संपादित करें

अब अपडेट और नए ग्रेड एपीआई के कारण आपको जिस लाइन का उपयोग करना चाहिए वह है:

implementation 'com.google.android.gms:play-services:12.0.0'

एक और महत्वपूर्ण टिप : Google Play Services के बंडल किए गए संस्करण का उपयोग करने से बचें, लेकिन केवल निर्भरता की घोषणा करने पर विचार करें कि आपके ऐप को इसका आकार कम करने के साथ-साथ 65k तरीकों की सीमा तक अनावश्यक हिट को कम करने की आवश्यकता है। ऐसा कुछ (जैसे मानचित्रों के लिए) यह सामान्य खेल-सेवाओं के उपयोग से बेहतर होगा:

implementation 'com.google.android.gms:play-services-maps:12.0.0'

धन्यवाद - इससे मदद मिली। मैं इस ट्यूटोरियल को करने की कोशिश कर रहा हूं और इस त्रुटि का सामना किया है और आपके समाधान ने मेरी मदद की: github.com/googledrive/android-demos
सिमोन

1
मुझे केवल प्रोजेक्ट को साफ करने की आवश्यकता थी, ग्रेडिंग सिंक के बाद, और लापता पूर्णांक त्रुटि चली गई। यह अच्छी तरह से भी काम करता है:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
कोई व्यक्ति

2
मुझे पता है कि यह एक पुराना क्यू / ए है, लेकिन लोग अभी भी इस पर ठोकर खा रहे हैं, इसलिए इसे नए एएस 3 और ग्रैडल एपीआई को अपडेट करने और पूरे बंडल के बजाय विशिष्ट पुस्तकालय का उपयोग करने के लिए आग्रह करने पर जोर दिया। मुझे आशा है कि मूल लेखक बुरा नहीं
मानते

7

बस पुस्तकालय संदर्भ जोड़ें, Propertes-> पर जाएं Android, फिर पुस्तकालय जोड़ें।

यहाँ छवि विवरण दर्ज करें

फिर आप में जोड़ें AndroidManifest.xml

   <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

3

एंड्रॉइड स्टूडियो 1.2.1.1 में मुझे यही समस्या थी। यह सिर्फ अन्य सवालों के जवाब में कहा गया था, हालांकि, मुझे यह नहीं पता था कि आश्रितों को कहां जोड़ा जाए। अंत में मैंने इसे फाइल-> प्रोजेक्ट स्ट्रक्चर-> डिपेंडेंसी के तहत पाया। यह मेनू आपको Google Play लाइब्रेरी पर निर्भरता जोड़ने का विकल्प देगा।


+1 के रूप में अस्पष्ट नेविगेशन पर मदद के लिए +1। धन्यवाद! यह मेरे मामले में मदद नहीं करता है, कि मैं एक और देव से सौंपे गए प्रोजेक्ट पर काम कर रहा था और वास्तव में एसडीके प्रबंधक: $ का उपयोग करके प्ले सर्विसेज लाइब्रेरी के सही संस्करण को कभी स्थापित नहीं किया था। एक बार जब मैंने लाइब्रेरी को डाउनलोड / इंस्टॉल किया, तो मैं वापस चला गया और हटा दिया गया / फिर से जोड़ा गया और संकलन त्रुटि चली गई।
ऐनी गुन


2

मेरे मामले में मुझे SDK प्रबंधक से Google रिपॉजिटरी स्थापित करनी थी।


1

मुझे वही त्रुटि मिल रही थी; मैंने पहले Google मैप्स के लिए google-play-services_lib स्थापित किया था (और यह ठीक काम कर रहा था) लेकिन तब जब मैंने बाद में अपने मैनिफेस्ट में मेटा-डेटा प्रविष्टि को जोड़ने की कोशिश की तो मुझे त्रुटि मिल रही थी। मैंने उपरोक्त सभी सुझावों की कोशिश की, लेकिन कुछ भी उन्हें ठीक से लिंक नहीं करेगा; मैंने आखिरकार अपने प्रोजेक्ट (प्रोजेक्ट-प्रॉपर्टीज-एंड्रॉइड, google-play-services_lib लाइब्रेरी को हटा दिया) से लिंक हटा दिया, फिर एक्लिप्स कार्यक्षेत्र से हटा दिया, डिस्क पर फ़ाइलों को हटा दिया, और अंत में स्क्रैच से पुनर्स्थापित करने के लिए एसडीके प्रबंधक का उपयोग किया।

लग रहा था कि अंत में चाल चलनी चाहिए; अब ग्रहण ने मुझे बिना किसी त्रुटि के मेटा-डेटा प्रविष्टि छोड़ने की अनुमति देने का निर्णय लिया है।


मेरे पास एक ही त्रुटि थी, मेरे कार्यक्षेत्र में google-play-services की परिवाद की प्रतिलिपि पुरानी थी (इसलिए पूर्णांक संसाधन शामिल नहीं था), और एक अद्यतन संस्करण के साथ lib को प्रतिस्थापित करने का कार्य किया।
Bianca Daniciuc

0

आप कार्यक्षेत्र बदल सकते हैं और उस समस्या को ठीक कर सकते हैं और अपने मुख्य कार्यक्षेत्र में निश्चित प्रोजेक्ट को वापस आयात कर सकते हैं। इसके अलावा 4 कदम क्रम में होना चाहिए आशा है कि यह भविष्य में किसी की मदद करता है।


0

यह त्रुटि तब भी हो सकती है जब आपने Google Play Services का नया संस्करण डाउनलोड किया हो और नवीनतम SDK इंस्टॉल नहीं किया हो। मुझे क्या हुआ था इसलिए, जैसा कि दूसरों ने उल्लेख किया है, यदि आप Google Play Services को आयात करने और फिर कंसोल खोलने का प्रयास करते हैं, तो आपको एक संकलन त्रुटि दिखाई देगी। हाल के सभी एंड्रॉइड एसडीके स्थापित करने का प्रयास करें और यदि यह मामला है, तो फिर से प्रयास करें।


0

मैंने इससे उबरने के लिए निम्नलिखित कदम उठाए:

1) अपने Android एसडीके में परियोजना के रूप में Google Play सेवाएं आयात करें। मेरे सिस्टम में यह C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib पर पाया जाता है

2) आपका Android आवेदन-> गुण -> Android

खिड़की में

2.1) प्रोजेक्ट बिल्ड टारगेट में गूगल एपीआई पर क्लिक करें 2.2) नीचे फ्रेम में गूगल-प्ले सेवाएं जोड़ें और ओके पर क्लिक करें

आशा है कि यह क्या करना है पर स्पष्ट निर्देश देता है !!

धन्यवाद।


0

मेरे मामले में, मुझे अपने ऐप्स के स्रोत कोड के समान DRIVE में google-play-services_lib FOLDER की प्रतिलिपि बनाने की आवश्यकता है

  • F: \ Products \ Android \ APP * .java <- मेरे ऐप्स यहां हैं इसलिए मैंने नीचे फ़ोल्डर में कॉपी किया
  • एफ: \ उत्पाद \ एंड्रॉयड \ libs \ गूगल प्ले-services_lib

0

बस प्रोजेक्ट से Google प्ले सर्विसेज लाइब्रेरी को हटाकर sdk->extras->googleफ़ोल्डर से एक बार फिर जोड़ने से मेरी समस्या पूरी तरह से हल हो गई।


0

मेरे मामले के लिए, मैं सिर्फ अपने ग्रहण को पुनः आरंभ करता हूं और यह काम करता है।

मैं इसे बंद किए बिना 2 सप्ताह के लिए काम कर रहा हूं, मुझे लगता है कि यह हाइरवायर हो जाता है।

सुझाव के लिए धन्यवाद, हालांकि Ewoks!


0

लाइब्रेरी कोड के उपयुक्त कोड के साथ संस्करण कोड बदलें, इस तरह से आपकी समस्या का समाधान होगा:

 <integer name="google_play_services_version"> <versioncode> </integer>

-3

के रूप में सीधे इस्तेमाल किया जा सकता है

android:value="6587000"

की जगह में

android:value="@integer/google_play_services_version"

चीयर्स।


क्यों यह एक बुरा विचार है, इसके लिए ऊपर दिए गए स्वीकृत उत्तर ( stackoverflow.com/a/20068489/165164 ) को देखें ।
ऐनी गुन

-37

आपको अपनी परियोजना के "Res / मान" फ़ोल्डर में "integers.xml" फ़ाइल जोड़ने की आवश्यकता होगी। फ़ाइल की सामग्री होनी चाहिए ..

<resources>
    <integer name="google_play_services_version">4030500</integer>
</resources>

6
ऐसा कभी न करें, इसका गतिशील नहीं है।
पंचकोशी

2
यह बिल्कुल गलत काम है। Ewoks का जवाब देखें, stackoverflow.com/a/20068489/1450294 पर
माइकल शीश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.