Wymagania wstępne
- Zainstaluj najnowszą wersję pakietu Android SDK za pomocą Menedżera pakietu Android SDK.
- Zainstaluj najnowszą wersję bibliotek appcompat i mediarouter AndroidX za pomocą Menedżera pakietu Android SDK.
- Zainstaluj najnowszą wersję pakietu Cast SDK w Usługach Google Play za pomocą Menedżera pakietu Android SDK.
Pakiet Google Cast SDK na Androida jest częścią pakietu SDK usług Google Play i nie trzeba go pobierać osobno.
Uwaga: usługi Google Play dają dostęp do różnych interfejsów API, które umożliwiają m.in. tworzenie reklam, zbieranie danych analitycznych, uwierzytelnianie użytkowników i integrowanie map. Więcej informacji znajdziesz w artykule Omówienie Usług Google Play. Ważne jest, aby upewnić się, że na urządzeniu użytkownika jest zainstalowany prawidłowy plik APK Usług Google Play, ponieważ aktualizacje mogą nie dotrzeć od razu do wszystkich użytkowników.
Dodawanie usług Google Play do projektu
Wybierz poniżej swoje środowisko programistyczne i dodaj usługi Google Play do projektu, wykonując podane czynności.
Android Studio
Aby udostępnić interfejsy API Usług Google Play aplikacji:
- Otwórz plik
build.gradlew katalogu modułu aplikacji.Uwaga: projekty Android Studio zawierają plik
build.gradlenajwyższego poziomu i plikbuild.gradledla każdego modułu. Pamiętaj, aby zmodyfikować plik modułu aplikacji. Więcej informacji o Gradle znajdziesz w artykule Tworzenie projektu za pomocą Gradle. - Sprawdź, czy
google()znajduje się na liścierepositories.repositories {google() } - Dodaj nową regułę kompilacji w
dependenciesdla najnowszej wersjiplay-services. Na przykład:apply plugin: 'com.android.application' ... dependencies { implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.mediarouter:mediarouter:1.2.5' implementation 'com.google.android.gms:play-services-cast-framework:23.0.0' }
Pamiętaj, aby aktualizować ten numer wersji za każdym razem, gdy aktualizowane są Usługi Google Play.
Uwaga: jeśli liczba odwołań do metod w aplikacji przekracza limit 65 tys., kompilacja aplikacji może się nie powieść. Możesz rozwiązać ten problem, określając podczas kompilowania aplikacji tylko te interfejsy API Usług Google Play, których używa aplikacja, zamiast wszystkich. Informacje o tym, jak to zrobić, znajdziesz w artykule o selektywnym kompilowaniu interfejsów API do pliku wykonywalnego.
- Zapisz zmiany i na pasku narzędzi kliknij Sync Project with Gradle Files (Zsynchronizuj projekt z plikami Gradle).
Inne IDE
Aby udostępnić interfejsy API Usług Google Play aplikacji:
- Skopiuj projekt biblioteki z
<android-sdk>/extras/google/google_play_services/libproject/google-play-services_lib/do lokalizacji, w której przechowujesz projekty aplikacji na Androida. - W projekcie aplikacji odwołaj się do projektu biblioteki Usług Google Play. Więcej informacji o tym, jak to zrobić, znajdziesz w artykule
Odwoływanie się do projektu biblioteki w wierszu poleceń.
Uwaga: należy odwoływać się do kopii biblioteki, która została skopiowana do obszaru roboczego programisty – nie należy odwoływać się do biblioteki bezpośrednio z katalogu pakietu Android SDK.
- Po dodaniu biblioteki Usług Google Play jako zależności do projektu aplikacji otwórz plik manifestu aplikacji i dodaj ten tag jako element podrzędny elementu
<application>:<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
Po skonfigurowaniu projektu tak, aby odwoływał się do projektu biblioteki, możesz zacząć tworzyć funkcje za pomocą interfejsów API usług Google Play.
Tworzenie wyjątku Proguard
Aby zapobiec usuwaniu wymaganych klas przez ProGuard, dodaj te wiersze w pliku :
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { public static final *** NULL; } -keepnames class * implements android.os.Parcelable -keepclassmembers class * implements android.os.Parcelable { public static final *** CREATOR; } -keep @interface android.support.annotation.Keep -keep @android.support.annotation.Keep class * -keepclasseswithmembers class * { @android.support.annotation.Keep <fields>; } -keepclasseswithmembers class * { @android.support.annotation.Keep <methods>; } -keep @interface com.google.android.gms.common.annotation.KeepName -keepnames @com.google.android.gms.common.annotation.KeepName class * -keepclassmembernames class * { @com.google.android.gms.common.annotation.KeepName *; } -keep @interface com.google.android.gms.common.util.DynamiteApi -keep public @com.google.android.gms.common.util.DynamiteApi class * { public <fields>; public <methods>; } -dontwarn android.security.NetworkSecurityPolicy