Thêm phiên bản dịch vụ của Google Play vào tệp kê khai ứng dụng của bạn?


88

Tôi đang làm theo hướng dẫn này: https://developers.google.com/maps/documentation/android/start#overview về cách thêm Google Maps vào một ứng dụng trong Android SDK.

Vấn đề duy nhất mà tôi có vẻ đang gặp phải là trong thời gian này (tôi đã làm mọi thứ khác mà không có lỗi):

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').

Tôi đã cố gắng làm theo giải pháp của người này cho cùng một vấn đề: cập nhật Thư viện dịch vụ của Google Play và thiếu ký hiệu @ integer / google_play_services_version

nhưng tôi vẫn nhận được lỗi tương tự. Bất kỳ giúp đỡ xin vui lòng?


Nếu Eclipse mang lại cho bạn sự cố về nó, hãy thử làm điều này: stackoverflow.com/a/19990244/166921
Kamil Szot

Câu trả lời:


100

Có thể thư viện của bạn không được liên kết với dự án đúng cách hoặc bạn có phiên bản thư viện google-play-services cũ hơn nên xung đột xuất hiện và Eclipse trở nên ngu ngốc ..: S

Không, bạn không cần thêm bất cứ thứ gì vào integer.xml. Khi bạn liên kết đúng cách, thư viện Google-play-services với tài liệu tham khảo dự án của bạn android:value="@integer/google_play_services_version"sẽ được tìm thấy và bạn đã sẵn sàng. Khi bạn thêm thư viện vào dự án của mình, chỉ cần thực hiện thêm một lần nữa để quét sạch mọi thứ trong môi trường Eclipse rất thú vị.

Nếu bạn hardcode ở đâu đó số này khi phiên bản chơi tiếp theo đến, bạn sẽ cần phải cập nhật nó. Và nếu bạn quên điều đó, bạn sẽ mất thời gian một lần nữa để tìm lỗi ..: S

Hy vọng nó sẽ giúp. ;)


1
vâng, trên android studio, tôi đã thêm dịch vụ google play dưới dạng mô-đun (không phải dưới dạng thư viện), nhưng tôi đã quên thêm mô-đun này vào mô-đun dự án của mình, nơi có tệp kê khai. Điều này đã giải quyết được vấn đề :)
Ragaisis vào

18
Cảm ơn, điều này đã khắc phục sự cố của tôi. Để có hướng dẫn từng bước chống ngu ngốc để tham khảo dự án thư viện trong Eclipse / ADT, vui lòng xem tài liệu Công cụ của Google . Tôi dường như là một tên ngốc, bởi vì tôi đã cố gắng thêm thư viện trong "Java Build Path: Libraries" - không có gì khó khăn cả.
Jeffro

Xin lỗi vì trả lời muộn, nhưng vâng, đây là sự cố, thư viện không được liên kết đúng với dự án của tôi!
Adz

1
Làm thế nào để làm điều đó cho Ant?
Dzmitry Lazerka

2
Nếu có ích, tôi phải thực hiện thêm một vài bước trong Android Studio. Đã đến: Cấu trúc dự án -> Ứng dụng -> Phụ thuộc -> nhấp vào + để thêm tùy chọn cho Thư viện -> dịch vụ chơi (xxx). Tôi gặp lỗi khi xây dựng lại và thư viện được thêm vào là play-services ... 0.0. Tôi đã thiếu Kho lưu trữ Google Play từ Trình quản lý SDK trong Phần bổ sung. Khi tôi quay lại và lặp lại các bước đó, Thư viện giờ đã có số phiên bản thực và được tạo lại thành công.
natur3

36

Tôi đã có giải pháp.

  • Bước 1: Nhấp chuột phải vào dự án của bạn tại Trình khám phá gói (bên trái trong nhật thực)
  • Bước 2: Truy cập Android.
  • Bước 3: Trong phần Thư viện Thêm Thư viện ... (google-play-services_lib)
    xem các buttes bên dưới

    • Sao chép dự án thư viện tại

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

    • đến vị trí mà bạn duy trì các dự án ứng dụng Android của mình. Nếu bạn đang sử dụng Eclipse, hãy nhập dự án thư viện vào không gian làm việc của bạn. Nhấp vào Tệp> Nhập, chọn Android> Mã Android hiện có vào Không gian làm việc và duyệt đến bản sao của dự án thư viện để nhập.
    • Bấm vào đây để biết thêm.
  • Bước 4: Nhấp vào Áp dụng
  • Bước 5: Nhấp vào ok
  • Bước 6: Làm mới ứng dụng của bạn từ gói Explorer.
  • Bước 7: Bạn sẽ thấy lỗi biến mất.

30

Từ đây

Bạn nên tham chiếu bản sao của thư viện mà bạn đã sao chép vào không gian làm việc phát triển của mình — bạn không nên tham chiếu thư viện trực tiếp từ thư mục Android SDK.

Tôi gặp phải lỗi này vì tôi đã tham chiếu bản sao gốc từ thư mục SDK. Đảm bảo rằng trước tiên bạn sao chép thư viện vào không gian làm việc android và chỉ tham chiếu nó. Trong eclipse, bạn có thể làm điều đó bằng cách chọn "Sao chép dự án vào không gian làm việc" trong khi nhập dự án.


3
aiaiai, lãng phí hàng giờ đồng hồ vì không đánh dấu vào ô này ... rất vui vì tôi đã tìm thấy câu trả lời này! Sẽ rõ ràng hơn trong Tài liệu Google.
Marius Hilarious

Và đó là vấn đề của tôi, mọi thứ đều được tham chiếu theo cách nó nên ngoại trừ thư mục nguồn của google lib không được sao chép vào không gian làm việc của tôi
JustADev

Bản sửa lỗi này cũng làm việc cho tôi. Nhưng tự hỏi sự khác biệt về mặt kỹ thuật là gì?
sivag1

Google sẽ cập nhật các ảnh chụp màn hình / hướng dẫn tại đây: developers.google.com/+/mobile/android/getting-started
ban-địa kĩ thuật

22

Trong Android Studio, bạn có thể sửa lỗi này bằng cách chỉ cần thêm tệp này vào tệp Gradle của mình:

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

BIÊN TẬP

Bây giờ, do các bản cập nhật và API Gradle mới, dòng bạn nên sử dụng là:

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

Một mẹo quan trọng hơn : Tránh sử dụng phiên bản đi kèm của Dịch vụ Google Play, nhưng hãy xem xét chỉ khai báo các phần phụ thuộc mà ứng dụng của bạn cần để giảm kích thước cũng như giảm lần truy cập không cần thiết xuống giới hạn 65 nghìn phương pháp. Một cái gì đó như (tức là cho Maps) điều này sẽ tốt hơn so với việc sử dụng các dịch vụ vui chơi chung ở trên:

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

Cảm ơn - điều này đã giúp. Tôi đang cố gắng để làm hướng dẫn này và đã gặp phải lỗi này và giải pháp của bạn đã giúp tôi: github.com/googledrive/android-demos
Simon

1
Tôi chỉ cần làm sạch dự án, sau khi đồng bộ hóa gradle và lỗi số nguyên bị thiếu đã biến mất. Này hoạt động tốt quá:compile 'com.google.android.gms:play-services-appindexing:7.8.0'
Có người Somewhere

2
Tôi biết đó là một Q / A cũ nhưng mọi người vẫn đang tình cờ phát hiện ra nó, vì vậy, việc cập nhật nó lên API AS3 & Gradle mới là rất hợp lý và nhấn mạnh sự thôi thúc sử dụng thư viện cụ thể thay vì toàn bộ gói. Tôi hy vọng tác giả ban đầu không quan tâm
Ewoks

7

Chỉ cần thêm tham chiếu thư viện, đi tới Propertes-> Android, sau đó thêm thư viện.

nhập mô tả hình ảnh ở đây

sau đó thêm vào bạn AndroidManifest.xml

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

3

Tôi gặp sự cố tương tự trong Android Studio 1.2.1.1. Tuy nhiên, những câu trả lời khác đã nói chỉ là lấp lửng, tôi không thể tìm thấy nơi để thêm các phụ thuộc. Cuối cùng, tôi đã tìm thấy nó trong Tệp-> Cấu trúc dự án-> Phụ thuộc Trình đơn này sẽ cung cấp cho bạn tùy chọn thêm phụ thuộc vào thư viện Dịch vụ của Google Play.


+1 để được trợ giúp về điều hướng bị che khuất trong AS 1.2. Cảm ơn bạn! Trong trường hợp của tôi, nó không giúp ích được gì khi tôi đang làm việc trên một dự án được giao từ một nhà phát triển khác và chưa bao giờ thực sự cài đặt đúng phiên bản thư viện dịch vụ chơi bằng trình quản lý SDK: $. Sau khi tôi tải xuống / cài đặt thư viện, sau đó tôi quay lại và xóa / thêm lần nữa và lỗi biên dịch đã biến mất.
Anne Gunn


2

Trong trường hợp của tôi, tôi phải cài đặt kho lưu trữ của Google từ trình quản lý SDK.


1

Tôi đã nhận được cùng một lỗi; Trước đây tôi đã cài đặt google-play-services_lib cho Google Maps (và nó hoạt động tốt) nhưng sau đó khi tôi thử thêm mục nhập siêu dữ liệu vào Tệp kê khai của mình, tôi đã gặp lỗi. Tôi đã thử tất cả các đề xuất ở trên nhưng không có gì sẽ liên kết chúng đúng cách; Cuối cùng tôi đã xóa liên kết khỏi dự án của mình (dự án-thuộc tính-Android, xóa thư viện google-play-services_lib), sau đó xóa khỏi không gian làm việc Eclipse, xóa các tệp trên đĩa và cuối cùng sử dụng trình quản lý SDK để cài đặt lại từ đầu.

Điều đó dường như cuối cùng đã thành công; bây giờ Eclipse đã quyết định cho phép tôi để lại mục nhập siêu dữ liệu mà không có lỗi.


Tôi đã gặp lỗi tương tự, bản sao của google-play-services lib trong không gian làm việc của tôi đã cũ (do đó không chứa tài nguyên số nguyên) và việc thay thế lib bằng một phiên bản cập nhật đã thực hiện được một mẹo nhỏ.
Bianca Daniciuc

0

Bạn có thể thay đổi không gian làm việc và khắc phục sự cố đó và nhập dự án đã cố định trở lại không gian làm việc chính của bạn. Ngoài ra, 4 bước nên được thực hiện để hy vọng nó sẽ giúp ích cho ai đó trong tương lai.


0

Lỗi này cũng có thể xảy ra khi bạn đã tải xuống phiên bản mới của Dịch vụ Google Play và chưa cài đặt SDK mới nhất. Đó là những gì đã xảy ra với tôi. Vì vậy, như những người khác đã đề cập, nếu bạn cố gắng nhập Dịch vụ của Google Play rồi mở bảng điều khiển, bạn sẽ thấy lỗi biên dịch. Thử cài đặt tất cả các SDK Android gần đây và thử lại, nếu đúng như vậy.


0

Tôi đã thực hiện các bước sau để khôi phục sự cố này:

1) Nhập các dịch vụ google play dưới dạng dự án vào sdk android của bạn. Trong hệ thống của tôi, nó được tìm thấy tại C: \ adt-pack-windows-x86_64-20140702 \ sdk \ extras \ google \ google_play_services \ libproject \ google-play-services_lib

2) Ứng dụng android của bạn-> thuộc tính -> android

Trong cửa sổ

2.1) Nhấp vào API của Google trong mục tiêu xây dựng dự án 2.2) Thêm dịch vụ google-play ở khung dưới cùng và nhấp vào OK

Hy vọng nó cung cấp hướng dẫn rõ ràng về những gì phải làm !!

Cảm ơn.


0

Trong trường hợp của tôi, tôi cần sao chép Google-play-services_lib FOLDER trong cùng một DRIVE của mã nguồn ứng dụng của tôi

  • F: \ Products \ Android \ APP * .java <- Ứng dụng của tôi ở đây nên tôi đã sao chép vào thư mục bên dưới
  • F: \ Sản phẩm \ Android \ libs \ google-play-services_lib

0

Chỉ cần xóa thư viện dịch vụ google play khỏi dự án và thêm một lần nữa từ sdk->extras->googlethư mục đã giải quyết được vấn đề của tôi một cách hoàn hảo.


0

Đối với trường hợp của tôi, tôi chỉ cần khởi động lại Eclipse của mình và nó hoạt động.

Tôi đã làm việc trong 2 tuần mà không tắt nó, tôi nghĩ nó hoạt động tốt.

Cảm ơn vì lời đề nghị của Ewoks!


0

Thay thế mã phiên bản bằng mã thích hợp của phiên bản thư viện sẽ giải quyết được vấn đề của bạn, như sau:

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

-3

Có thể trực tiếp sử dụng như

android:value="6587000"

thay cho

android:value="@integer/google_play_services_version"

Chúc mừng.


Xem câu trả lời được chấp nhận ở trên ( stackoverflow.com/a/20068489/165164 ) để biết tại sao đây là một ý tưởng tồi.
Anne Gunn

-37

Bạn sẽ cần thêm tệp "integers.xml" vào thư mục "res / values" của dự án. Nội dung của tệp phải ..

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

6
không bao giờ làm điều đó, nó không năng động.
panchicore

2
Đây chính xác là điều sai lầm để làm. Xem câu trả lời của Ewoks, tại stackoverflow.com/a/20068489/1450294
Michael Scheper
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.