2017-06-21 27 views
6

Mam do czynienia z problemem na mapie google. Mapa Google nie wyświetla się po pobraniu pliku APK ze sklepu Google Play, ale działa dobrze, gdy ręcznie zainstalować (przez przeniesienie do urządzenia) ten sam apk, który został przesłany do gry sklepu.Google map nie wyświetla się, gdy aplikacja jest pobierana z playstore, ale wyświetla się poprawnie po zainstalowaniu bezpośrednio podpisana apk

mam ponownie sprawdzić moje debugowania i zwolnij klawisze, które są obecne here

Proszę znaleźć pozwolenie w pliku manifestu:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.USE_FINGERPRINT" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.GET_TASKS" /> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 

<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

A w węźle Zastosowanie:

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

i mój plik java mówi:

@Override 
public void onMapReady(GoogleMap googleMap) { 

    try { 

     map = googleMap; 
     // it will hide navigation and gps pointer buttons on map 
     map.getUiSettings().setMapToolbarEnabled(false); 
     //   map.getUiSettings().setZoomControlsEnabled(false); 

     if (TextUtils.isEmpty(companyDetailModel.getSupplierCompanyDetailsRS().getResponseDetail().getCompanyDetail().getLatitude())) { 


      if (!PermissionUtil.checkPermission(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) { 

       PermissionUtil.requestPermission(getActivity(), android.Manifest.permission.ACCESS_FINE_LOCATION, LOCATION_PERMISSION_CODE); 

      } else { 
       map.setMyLocationEnabled(true); 

       GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() { 
        @Override 
        public void onMyLocationChange(Location location) { 
         LatLng loc = new LatLng(location.getLatitude(), location.getLongitude()); 
         map.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f)); 
        } 
       }; 
       map.setOnMyLocationChangeListener(myLocationChangeListener); 

      } 


     } else { 

      LatLng latLng = new LatLng(Double.parseDouble(companyDetailModel.getSupplierCompanyDetailsRS().getResponseDetail().getCompanyDetail().getLatitude()), Double.parseDouble(companyDetailModel.getSupplierCompanyDetailsRS().getResponseDetail().getCompanyDetail().getLongitude())); 
      map.addMarker(new MarkerOptions().position(latLng)/*.title("" + companyDetailModel.getSupplierCompanyDetailsRS().getResponseDetail().getCompanyDetail().getAddress())/*.icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_launcher))*/); 
      map.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 14.0f)); 
     } 


     map.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 
      @Override 
      public void onMapClick(LatLng latLng) { 
       showFullScreenMap(); 
      } 
     }); 

    } catch (Exception e) { 
     Log.i("LatLng exception", "" + e); 
     Utils.showToast(getActivity(), "" + e); 
    } 

} 
+0

Czy używasz klucza Android? –

Odpowiedz

12

Niedawno Prześlij APK w Google Play, a ja w obliczu tego samego problemu po sprawdzeniu Juz Console Znalazłem rozwiązanie tego problemu.

Nie ma problemu z kluczem, ale problem dotyczy urządzenia SHA-1. Podpisałeś APK z SHA-1, który jest w porządku, a następnie przesłać plik APK również dobrze.

Ale zgodnie z nową aktualizacją dla Play Console, gdy podpisałeś APK z SHA-1 i przesyłasz plik APK, który został podpisany tylko przez ciebie, ale zgodnie z nową aktualizacją jest również podpisany przez Google Play w celu zwiększenia bezpieczeństwa. Zajrzyj tutaj w części Google Play:

Z aplikacją Google Play Podpisywanie: Podpisujesz swoją aplikację za pomocą swojego klucza do przesyłania. Następnie Google weryfikuje i usuwa podpis klucza przesyłania. Na koniec, Google ponownie podpisuje aplikację za pomocą oryginalnego klucza podpisania aplikacji podanego pod numerem i dostarcza aplikację do użytkownika.

Można odwołać Documentation here.

Teraz odpowiedzi na swoje pytanie jest Po pomyślnym ładować APK można zobaczyć, że w części z dwoma SHA-1 1-ty SHA-1 jest Google stworzył jego własny i Drugi SHA-1 jest twój.

Po prostu skopiuj Google SHA-1 i wklej go na konsolę, na której generowany jest klucz interfejsu API Map Google.

+2

Dziękuję bardzo Andy. Uratowałeś mi cały dzień. Teraz mapa dobrze się wyświetla. Jeszcze raz Dzięki. –

+0

@ user3391271 Witamy :) –

+1

To działa dla mnie Dziękuję! –

0

To jest kluczowy problem SHA1. Sprawdź swój odcisk palca konsoli Google SHA1, który jest w release.if klucz do debugowania, który nie działa w aplikacji playstore.

Certyfikat debugowania: Narzędzia Android SDK generują ten certyfikat automatycznie podczas kompilacji debugowania. Tego certyfikatu używaj tylko w testowanych aplikacjach. Nie próbuj publikować aplikacji podpisanej przy użyciu certyfikatu debugowania. Certyfikat debugowania jest opisany bardziej szczegółowo w Podpisywanie trybu debugowania w Dokumentacji dla programistów Androida.

Certyfikat wydania: Narzędzia Android SDK generują ten certyfikat podczas kompilacji wydania. Możesz również wygenerować ten certyfikat za pomocą programu keytool. Skorzystaj z tego certyfikatu, gdy będziesz gotowy, aby opublikować swoją aplikację na całym świecie.

Dokładne informacje znajdują Get API Key i app's SHA-1 fingerprint

+0

Witaj sasi kumar bardzo dziękuję za odpowiedź. ale mam wątpliwości, czy mam ten sam apk, który jest podpisany i działa dobrze, co oznacza, że ​​problem nie powinien dotyczyć SHA1, ale kiedy ładuję ten sam apk, aby grać w sklepie, pojawia się problem. –

Powiązane problemy