Wymagania wstępne
- Zainstaluj najnowszą wersję pakietu Android SDK za pomocą Android SDK Manager.
- Zainstaluj najnowszą wersję bibliotek AndroidX appcompat i mediarouter za pomocą Android SDK Manager.
- Zainstaluj najnowszy pakiet Cast SDK w Usługach Google Play za pomocą Android SDK Manager.
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 zapewniają dostęp do wielu interfejsów API, które umożliwiają tworzenie reklam, zbieranie danych analitycznych, uwierzytelnianie użytkowników, integrowanie map i wiele innych. 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 zainstalowana prawidłowa wersja pliku APK Usług Google Play zainstalowana , ponieważ aktualizacje mogą nie docierać do wszystkich użytkowników od razu.
Dodawanie Usług Google Play do projektu
Wybierz poniżej ś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 w 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 edytować plik modułu aplikacji. Więcej informacji o Gradle znajdziesz w artykule Tworzenie projektu za pomocą Gradle. - Sprawdź, czy
google()jest uwzględniony na liścierepositories.repositories {google() } - Dodaj nową regułę kompilacji w sekcji
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:22.3.1' }
Pamiętaj, aby aktualizować ten numer wersji za każdym razem, gdy Usługi Google Play są aktualizowane.
Uwaga: jeśli liczba odwołań do metod w aplikacji przekroczy limit 65 tys., kompilacja aplikacji może się nie udać. Możesz złagodzić ten problem podczas kompilowania aplikacji, określając tylko te interfejsy API Usług Google Play, których używa Twoja aplikacja, zamiast wszystkich. Więcej informacji na ten temat znajdziesz w artykule Selektywne kompilowanie interfejsów API do pliku wykonywalnego.
- Zapisz zmiany i kliknij Synchronizuj projekt z plikami Gradle na pasku narzędzi.
Inne IDE
Aby udostępnić interfejsy API Usług Google Play w aplikacji:
- Skopiuj projekt biblioteki z lokalizacji
<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 na ten temat znajdziesz w artykule
Odwoływanie się do Programu bibliotecznego Library Project w wierszu poleceń.
Uwaga: należy odwoływać się do kopii biblioteki skopiowanej do obszaru roboczego programisty, a nie bezpośrednio do biblioteki w katalogu 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" />
Gdy skonfigurujesz projekt tak, aby odwoływał się do projektu biblioteki, możesz zacząć tworzyć funkcje za pomocą interfejsów API Usług Google Play.
Utwórz wyjątek Proguard
Aby zapobiec
ProGuard usuwaniu
wymaganych klas, 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