เพิ่มเวอร์ชันบริการ Google Play ลงในไฟล์ Manifest ของแอปหรือไม่


88

ฉันกำลังติดตามบทแนะนำนี้: https://developers.google.com/maps/documentation/android/start#overview เกี่ยวกับวิธีเพิ่ม Google แผนที่ลงในแอปภายใน Android SDK

ปัญหาเดียวที่ฉันดูเหมือนจะมีในช่วงนี้ (ฉันทำทุกอย่างแล้วโดยไม่มีข้อผิดพลาด):

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 และไม่มีสัญลักษณ์ @ จำนวนเต็ม / google_play_services_version

แต่ฉันยังคงได้รับข้อผิดพลาดเดิม กรุณาช่วย?


หาก Eclipse ทำให้คุณมีปัญหาลองทำสิ่งนี้: stackoverflow.com/a/19990244/166921
Kamil Szot

คำตอบ:


100

อาจเป็นไปได้ว่าไลบรารีของคุณไม่ได้เชื่อมโยงกับโปรเจ็กต์อย่างถูกต้องหรือคุณมีเวอร์ชันไลบรารี google-play-services ที่เก่ากว่าดังนั้นความขัดแย้งจึงปรากฏขึ้นและ Eclipse ก็โง่ .. : S

ไม่คุณไม่จำเป็นต้องเพิ่มอะไรใน integers.xml เมื่อคุณเชื่อมโยงไลบรารี Google-play-services อย่างถูกต้องกับข้อมูลอ้างอิงโครงการของคุณandroid:value="@integer/google_play_services_version"จะพบและคุณพร้อมที่จะไป เมื่อคุณเพิ่มไลบรารีลงในโปรเจ็กต์ของคุณเพียงแค่ทำความสะอาดอีกครั้งเพื่อทำความสะอาดสภาพแวดล้อม Eclipse ที่ตลกขบขันอย่างถูกต้อง

หากคุณฮาร์ดโค้ดไว้ที่ใดที่หนึ่งเมื่อมีการเล่นเวอร์ชันถัดไปคุณจะต้องอัปเดต และถ้าคุณลืมคุณจะใช้เวลาอีกครั้งเพื่อหาจุดบกพร่อง .. : S

หวังว่ามันจะช่วยได้ ;)


1
ใช่ในสตูดิโอ android ฉันได้เพิ่มบริการ Google Play เป็นโมดูล (ไม่ใช่ในฐานะไลบรารี) แต่ฉันลืมเพิ่มโมดูลนี้ลงในโมดูลโครงการของฉันที่ไฟล์รายการอยู่ สิ่งนี้ช่วยแก้ปัญหาได้ :)
Ragaisis

18
ขอบคุณสิ่งนี้ช่วยแก้ปัญหาของฉันได้ สำหรับคำแนะนำทีละขั้นตอนงี่เง่าหลักฐานอ้างอิงสำหรับโครงการห้องสมุดใน Eclipse / ADT โปรดดูเอกสาร Google เครื่องมือ เห็นได้ชัดว่าฉันเป็นคนงี่เง่าเพราะฉันพยายามเพิ่มไลบรารีภายใต้ "Java Build Path: Libraries" - ไม่ยุ่งยาก
Jeffro

ขออภัยที่ตอบช้า แต่ใช่นี่คือปัญหาห้องสมุดไม่ได้เชื่อมโยงกับโครงการของฉันอย่างถูกต้อง!
Adz

1
จะทำอย่างไรให้ Ant?
Dzmitry Lazerka

2
ถ้าช่วยได้ฉันต้องทำตามขั้นตอนเพิ่มเติมอีกสองสามขั้นใน Android Studio ไปที่: Project Structure -> App -> Dependencies -> click + for add option for Library -> play-services (xxx) ฉันได้รับข้อผิดพลาดเมื่อสร้างใหม่และเพิ่มไลบรารี่คือ play-services ... 0.0 ฉันไม่มีที่เก็บ Google Play จาก SDK Manager ภายใต้ Extras เมื่อฉันกลับมาและทำซ้ำขั้นตอนเหล่านั้นตอนนี้ Library มีหมายเลขเวอร์ชันจริงและสร้างใหม่สำเร็จแล้ว
natur3

36

ฉันมีทางออกแล้ว

  • ขั้นตอนที่ 1: คลิกขวาที่โครงการของคุณที่ Package explorer (ด้านซ้ายในคราส)
  • ขั้นตอนที่ 2: ไปที่ Android
  • ขั้นตอนที่ 3: ในส่วน Library เพิ่ม Library ... (google-play-services_lib)
    ดูด้านล่าง

    • คัดลอกโครงการห้องสมุดที่

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

    • ไปยังตำแหน่งที่คุณดูแลโครงการแอป Android หากคุณกำลังใช้ Eclipse ให้อิมพอร์ตโปรเจ็กต์ไลบรารีลงในพื้นที่ทำงานของคุณ คลิกไฟล์> นำเข้าเลือก Android> รหัส Android ที่มีอยู่ลงในพื้นที่ทำงานและเรียกดูสำเนาของโครงการไลบรารีเพื่อนำเข้า
    • คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติม
  • ขั้นตอนที่ 4: คลิกใช้
  • ขั้นตอนที่ 5: คลิกตกลง
  • ขั้นตอนที่ 6: รีเฟรชแอปของคุณจาก Package Explorer
  • ขั้นตอนที่ 7: คุณจะเห็นข้อผิดพลาดหายไป

30

จากที่นี่

คุณควรอ้างอิงสำเนาของไลบรารีที่คุณคัดลอกไปยังพื้นที่ทำงานสำหรับการพัฒนาของคุณคุณไม่ควรอ้างอิงไลบรารีโดยตรงจากไดเรกทอรี Android SDK

ฉันพบข้อผิดพลาดนี้เนื่องจากฉันอ้างอิงสำเนาต้นฉบับจากไดเร็กทอรี SDK ตรวจสอบให้แน่ใจว่าคุณได้คัดลอกไลบรารีไปยังพื้นที่ทำงานของ Android ก่อนและอ้างอิงเท่านั้น ใน eclipse คุณสามารถทำได้โดยเลือก "คัดลอกโปรเจ็กต์ลงในพื้นที่ทำงาน" ในขณะที่อิมพอร์ตโปรเจ็กต์


3
aiaiai เสียเวลาไปหลายชั่วโมงเพราะไม่ได้ติ๊กช่องนี้ ... ดีใจที่เจอคำตอบนี้! ควรมีความชัดเจนในเอกสารประกอบของ Google
Marius Hilarious

และนั่นคือปัญหาของฉันทุกอย่างถูกอ้างถึงในแบบที่ควรจะเป็นยกเว้นโฟลเดอร์ซอร์สของ google lib ไม่ได้คัดลอกไปยังพื้นที่ทำงานของฉัน
JustADev

การแก้ไขนี้ใช้ได้ผลสำหรับฉันเช่นกัน แต่สงสัยว่าความแตกต่างในทางเทคนิคคืออะไร?
sivag1

Google ควรอัปเดตภาพหน้าจอ / คำแนะนำที่นี่: developers.google.com/+/mobile/android/getting-started
ban-geoengineering

22

ใน Android Studio คุณสามารถแก้ไขได้โดยเพิ่มลงในไฟล์ Gradle ของคุณ:

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

แก้ไข

ตอนนี้เนื่องจากการอัปเดตและ Gradle API ใหม่บรรทัดที่คุณควรใช้คือ:

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

เคล็ดลับที่สำคัญอีกประการหนึ่ง : หลีกเลี่ยงการใช้บริการ Google Play เวอร์ชันรวม แต่ให้พิจารณาการประกาศเฉพาะการอ้างอิงที่แอปของคุณต้องการลดขนาดและลดจำนวนวิธีที่ไม่จำเป็นให้เหลือ 65k วิธีการ สิ่งที่ต้องการ (เช่นสำหรับแผนที่) สิ่งนี้จะดีกว่าการใช้บริการเล่นทั่วไปด้านบน:

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

ขอบคุณ - สิ่งนี้ช่วยได้ ฉันกำลังพยายามทำบทช่วยสอนนี้และพบข้อผิดพลาดนี้และวิธีแก้ปัญหาของคุณช่วยฉัน: github.com/googledrive/android-demos
Simon

1
ฉันแค่ต้องล้างโปรเจ็กต์หลังจากการซิงก์ชั้นประถมศึกษาและข้อผิดพลาดจำนวนเต็มที่หายไปก็หายไป สิ่งนี้ใช้ได้ดีเช่นกัน:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
ใครบางคนอยู่ที่ไหนสักแห่ง

2
ฉันรู้ว่ามันเป็น Q / A แบบเก่า แต่ผู้คนยังคงสะดุดกับเรื่องนี้ดังนั้นจึงควรอัปเดตเป็น AS3 & Gradle API ใหม่และเพื่อเน้นย้ำให้ใช้ไลบรารีเฉพาะแทนที่จะเป็นกลุ่มทั้งหมด ฉันหวังว่าผู้เขียนต้นฉบับจะไม่รังเกียจ
Ewoks

7

เพียงเพิ่มการอ้างอิงไลบรารีไปที่ Propertes -> Androidจากนั้นเพิ่มไลบรารี

ป้อนคำอธิบายภาพที่นี่

แล้วเพิ่มเป็นคุณ AndroidManifest.xml

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

3

ฉันมีปัญหาเดียวกันใน Android Studio 1.2.1.1 มันเป็นเพียงแค่คำตอบอื่น ๆ ที่กล่าวไว้อย่างไรก็ตามฉันไม่สามารถหาตำแหน่งที่จะเพิ่มการอ้างอิงได้ ในที่สุดฉันก็พบมันภายใต้ไฟล์ -> โครงสร้างโครงการ -> การพึ่งพา เมนูนี้จะให้ตัวเลือกในการเพิ่มการพึ่งพาไปยังไลบรารี Google Play Services


+1 สำหรับความช่วยเหลือในการนำทางที่ไม่ชัดเจนใน AS 1.2 ขอขอบคุณ! ในกรณีของฉันไม่ได้ช่วยอะไรที่ฉันกำลังทำงานในโปรเจ็กต์ที่ส่งมาจากผู้พัฒนารายอื่นและไม่เคยติดตั้งไลบรารีบริการการเล่นเวอร์ชันที่ถูกต้องโดยใช้ตัวจัดการ SDK: $ เมื่อฉันดาวน์โหลด / ติดตั้งไลบรารีแล้วฉันก็กลับไปลบ / เพิ่มอีกครั้งและข้อผิดพลาดในการคอมไพล์ก็หายไป
Anne Gunn


2

ในกรณีของฉันฉันต้องติดตั้งที่เก็บ Google จากตัวจัดการ SDK


1

ฉันได้รับข้อผิดพลาดเดียวกัน ก่อนหน้านี้ฉันได้ติดตั้ง google-play-services_lib สำหรับ Google Maps (และใช้งานได้ดี) แต่หลังจากนั้นเมื่อฉันลองเพิ่มรายการข้อมูลเมตาในไฟล์ Manifest ของฉันในภายหลังฉันได้รับข้อผิดพลาด ฉันลองทำตามคำแนะนำข้างต้นแล้ว แต่ไม่มีอะไรเชื่อมโยงอย่างถูกต้อง ในที่สุดฉันก็ลบลิงก์ออกจากโปรเจ็กต์ของฉัน (project-properties-Android ลบไลบรารี google-play-services_lib) จากนั้นลบออกจากพื้นที่ทำงาน Eclipse ลบไฟล์บนดิสก์และในที่สุดก็ใช้ตัวจัดการ SDK เพื่อติดตั้งใหม่ตั้งแต่เริ่มต้น

ในที่สุดดูเหมือนจะทำเคล็ดลับ; ตอนนี้ Eclipse ได้ตัดสินใจที่จะอนุญาตให้ฉันออกจากรายการข้อมูลเมตาโดยไม่มีข้อผิดพลาด


ฉันมีข้อผิดพลาดเดียวกันสำเนาของ lib ของ google-play-services ในพื้นที่ทำงานของฉันเป็นรุ่นเก่า (ดังนั้นจึงไม่มีทรัพยากรจำนวนเต็ม) และการแทนที่ lib ด้วยเวอร์ชันที่อัปเดตก็เป็นการหลอกลวง
Bianca Daniciuc

0

คุณสามารถเปลี่ยนพื้นที่ทำงานและแก้ไขปัญหานั้นได้และนำเข้าโครงการที่แก้ไขแล้วกลับไปที่พื้นที่ทำงานหลักของคุณได้ นอกจากนี้ 4 ขั้นตอนควรเป็นไปเพื่อหวังว่ามันจะช่วยใครบางคนในอนาคต


0

ข้อผิดพลาดนี้อาจเกิดขึ้นได้เมื่อคุณดาวน์โหลดบริการ Google Play เวอร์ชันใหม่และไม่ได้ติดตั้ง SDK ล่าสุด นั่นคือสิ่งที่เกิดขึ้นกับฉัน ดังที่คนอื่น ๆ กล่าวถึงหากคุณพยายามนำเข้าบริการ Google Play จากนั้นเปิดคอนโซลคุณจะเห็นข้อผิดพลาดในการคอมไพล์ ลองติดตั้ง Android SDK ล่าสุดทั้งหมดแล้วลองอีกครั้งหากเป็นกรณีนี้


0

ฉันทำตามขั้นตอนเพื่อกู้คืนจากสิ่งนี้:

1) นำเข้าบริการ Google Play เป็นโครงการลงใน android sdk ของคุณ ในระบบของฉันพบได้ที่ C: \ adt-bundle-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib

2) แอปพลิเคชัน Android ของคุณ -> คุณสมบัติ -> Android

ในหน้าต่าง

2.1) คลิกที่ Google API ในเป้าหมายการสร้างโครงการ 2.2) เพิ่มบริการ Google-play ในกรอบด้านล่างและคลิกที่ตกลง

หวังว่าจะให้คำแนะนำที่ชัดเจนว่าต้องทำอย่างไร !!

ขอบคุณ.


0

ในกรณีของฉันฉันต้องคัดลอกโฟลเดอร์ google-play-services_lib ในไดรฟ์เดียวกันของซอร์สโค้ดของแอปของฉัน

  • F: \ Products \ Android \ APP * .java <- แอปของฉันอยู่ที่นี่ดังนั้นฉันจึงคัดลอกไปยังโฟลเดอร์ด้านล่าง
  • F: \ Products \ Android \ libs \ google-play-services_lib

0

เพียงแค่ลบไลบรารีบริการ Google Play ออกจากโครงการและเพิ่มอีกครั้งจากsdk->extras->googleโฟลเดอร์ก็ช่วยแก้ปัญหาของฉันได้อย่างสมบูรณ์แบบ


0

สำหรับกรณีของฉันฉันเพิ่งรีสตาร์ท Eclipse และใช้งานได้

ฉันทำงานเป็นเวลา 2 สัปดาห์โดยไม่ได้ปิดเครื่องฉันคิดว่ามันยุ่งเหยิง

ขอบคุณสำหรับข้อเสนอแนะของ Ewoks!


0

แทนที่รหัสเวอร์ชันด้วยรหัสเวอร์ชันไลบรารีที่เหมาะสมจะช่วยแก้ปัญหาของคุณได้ดังนี้:

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


-37

คุณจะต้องเพิ่มไฟล์ "integers.xml" ลงในโฟลเดอร์ "res / values" ของโปรเจ็กต์ของคุณ เนื้อหาของไฟล์ควรเป็น ..

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

6
ไม่เคยทำอย่างนั้นมันไม่ได้เป็นแบบไดนามิก
panchicore

2
นี่คือสิ่งที่ผิดที่จะทำ ดูคำตอบของ Ewoks ที่stackoverflow.com/a/20068489/1450294
Michael Scheper
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.