2017-06-21 4 views
6

Ich habe ein Problem in Google Map.Google Karte wird nicht angezeigt, wenn ich die apk von Google Play Store herunterladen, aber es funktioniert gut, wenn ich manuell installieren (durch Übertragung auf das Gerät) die gleiche apk, die hochgeladen wurde, um den Laden zu spielen.Google Karte nicht angezeigt, wenn App aus Playstore heruntergeladen wird, aber zeigt gut, wenn direkt signiert apk

Ich habe meine Debug erneut überprüft und Schlüssel freigeben, die here

Bitte finden Erlaubnis in Manifest-Datei vorhanden sind:

<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" /> 

Und in Anwendungsknoten:

<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" /> 

und meine Java-Datei sagt:

@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

verwenden Sie Android-Schlüssel? –

Antwort

12

ich vor kurzem die APK auf Google hochladen und ich vor dem gleichen Problem nach der Überprüfung der Spielkonsole ich die Lösung für dieses Problem gefunden.

Sie sind kein Problem mit Ihrem Schlüssel, aber das Problem ist mit Ihrem SHA-1. Du hast dein APK mit deinem SHA-1 unterschrieben, das ist in Ordnung und dann lädst du das APK auch in Ordnung.

Aber nach dem neuen Update für Play Console, als Sie Ihr APK mit SHA-1 signiert und das APK hochgeladen haben, wurde es nur von Ihnen signiert, aber gemäß dem neuen Update wird es auch von Google Play für mehr Sicherheit signiert. Hier ein Teil des Google Play-Bereichs:

Mit Google Play App Signing: Sie signieren Ihre App mit Ihrem Upload-Schlüssel. Dann überprüft Google die Signatur des Upload-Schlüssels und entfernt sie. Endlich, Google signiert die App mit dem ursprünglichen App-Signaturschlüssel, den Sie zur Verfügung gestellt haben und sendet Ihre App an den Nutzer.

Sie verweisen Documentation here.

Nun ist die Antwort auf Ihre Frage Nach einer erfolgreich verlaufenen APK hochladen können Sie die im Abschnitt sehen mit zwei SHA-1 der 1. SHA-1 ist Google erstellt seine eigene und 2. SHA-1 ist seine Ihre.

Kopieren Sie einfach den Google SHA-1 und fügen Sie ihn in Ihre Konsole ein, wo Sie den Google Map API Key generieren.

+2

Vielen Dank Andy. Du hast meinen ganzen Tag gerettet. Jetzt zeigt die Karte gut. Nochmals vielen Dank. –

+0

@ user3391271 Willkommen :) –

+1

Es funktioniert für mich Danke! –

0

Dies ist SHA1 Schlüsselproblem. Überprüfen Sie Ihre Google-Konsole Fingerabdruck SHA1 das ist in release.if Ihr Schlüssel in debug das funktioniert nicht in Playstore App.

Ein Debug-Zertifikat: Die Android SDK-Tools generieren dieses Zertifikat automatisch, wenn Sie einen Debug-Build erstellen. Verwenden Sie dieses Zertifikat nur für Apps, die Sie testen. Versuchen Sie nicht, eine App zu veröffentlichen, die mit einem Debug-Zertifikat signiert ist. Das Debug-Zertifikat wird unter Anmelden im Debug-Modus in der Android Developer Documentation genauer beschrieben.

Ein Freigabezertifikat: Die Android SDK-Tools generieren dieses Zertifikat, wenn Sie einen Release-Build erstellen. Sie können dieses Zertifikat auch mit dem Programm keytool generieren. Verwenden Sie dieses Zertifikat, wenn Sie Ihre App in der Welt veröffentlichen möchten. Play Store

Weitere Details finden Get API Key und app's SHA-1 fingerprint

+0

Hallo Sasi Kumar danke so viel für die Antwort. aber mein Zweifel ist, dass ich die gleiche apk habe, die signiert ist und es gut funktioniert, das bedeutet, dass das Problem nicht mit SHA1 sein sollte, aber wenn ich die gleiche apk ins Geschäft stoße, dann kommt die Ausgabe. –

Verwandte Themen