2016-12-08 4 views
15

Próbuję zaimplementować interfejs API Map Google za pomocą dokumentów jonowych as seen here.Ionic v2 Google Maps API Błąd budowania Androida: nie można uzyskać dostępu do AbstractSafeParcelable options.compassEnabled (controls.getBoolean ("compass"));

Używam próbki kodu dokładnie tak, jak w zestawie, ale ja dostaję następujący błąd:

BUILD FAILED 

Total time: 2.748 secs 

Error: /path/to/platforms/android/gradlew: Command failed with exit code 1 Error output: 
/path/to/platforms/android/src/plugin/google/maps/GoogleMaps.java:479: error: cannot access AbstractSafeParcelable 
     options.compassEnabled(controls.getBoolean("compass")); 
      ^
    class file for com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable not found 
Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
1 error 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':compileDebugJavaWithJavac'. 
> Compilation failed; see the compiler error output for details 

Czy ktoś widział/rozwiązać ten problem?

Odpowiedz

44

Udało mi się rozwiązać problem. Podczas gdy wiele sugestii, które znalazłem, dotyczyło instalacji brakujących repozytoriów (potrzebujesz repozytorium pomocy technicznej dla Androida, biblioteki, usług Play i repozytorium Google), miałem wszystko na miejscu. Brakowało że nieprawidłowe wersji jest określona w project.properties gdy użyłem tego polecenia, aby dodać wtyczki:

ionic plugin add cordova-plugin-googlemaps --variable API_KEY_FOR_ANDROID="YOUR_ANDROID_API_KEY_IS_HERE" --variable API_KEY_FOR_IOS="YOUR_IOS_API_KEY_IS_HERE" 

W project.properties, zmieniłem to:

cordova.system.library.4=com.google.android.gms:play-services-maps:9.8.0 
cordova.system.library.5=com.google.android.gms:play-services-location:9.8.0 

do tego:

cordova.system.library.4=com.google.android.gms:play-services-maps:+ 
cordova.system.library.5=com.google.android.gms:play-services-location:+ 

To rozwiązało błąd konstrukcyjny.

+0

Należy pamiętać, że wymaga to również emulatora, który może uruchamiać usługi Google Play w wersji 10.0 lub nowszej. Dla mnie oznaczało to zainstalowanie pakietu SDK Google API (obecnie na liście Android 7.0, SDK 24 w moim menedżerze SDK) i użycie go jako podstawowego obrazu dla emulatora. –

+0

To nie rozwiązuje mojego problemu. plugin/google/maps/PluginUtil.java: 135: error: nie można uzyskać dostępu do AbstractSafeParcelable Builder builder = LatLngBounds.builder(); ^ plik klas dla com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable nie znaleziony –

+1

Rozwiązało to problem w moim przypadku. –

Powiązane problemy