2017-06-21 5 views
6

Googleマップの問題に直面している。Google PlayストアからapkをダウンロードするとGoogleマップが表示されないプレイストアにアップロードされた同じapkを手動で(デバイスに転送して)インストールします。アプリがPlaystoreからダウンロードされたときにGoogleマップが表示されないが、直接署名されたapkをインストールしたときに問題なく表示される

私は私のデバッグを再チェックし、here

は、マニフェストファイルのパーミッションを見つけてください存在しているキーを離しています

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

と私のJavaファイル:

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

とアプリケーション・ノードで

は:

@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

あなたはアンドロイドキーを使用していますか? –

答えて

12

Get API Keyapp's SHA-1 fingerprintを参照してください。

あなたのキーに問題はありませんが、問題はあなたのSHA-1にあります。あなたのSHA-1であなたのAPKに署名しました。そしてあなたはそれもうまくAPKをアップロードします。

しかし、SHA-1でAPKに署名してAPKをアップロードしたときのPlay Consoleの新しいアップデートでは、新しいアップデートごとに署名されていますが、セキュリティが強化されたGoogle Playでも署名されています。ここをクリックしてGoogle Playセクションの一部をご覧ください:

Google Playのアプリケーション署名を使用すると、アップロードキーでアプリに署名します。 次に、Googleはアップロード鍵の署名を検証して削除します。最後に、 Googleは を提供したオリジナルのアプリ署名キーでアプリに再署名し、アプリをユーザーに配信します。

あなたは今Documentation here.

を参照することができ、あなたの質問の回答が成功した後、あなたが二SHA-1のセクション第一SHA-1にGoogleがその作成されていることがわかりますAPKをアップロードしています自身と第2のSHA-1はあなたのものですです。

Google SHA-1をコピーしてGoogleマップAPIキーを生成するコンソールに貼り付けてください。

+2

ありがとう、アンディ。あなたは私の一日を保存しました。今地図がうまく表示されています。もう一度ありがとう。 –

+0

@ user3391271ようこそ: –

+1

それは私のために働いていますありがとう! –

0

これはSHA1キーの問題です。お使いのGoogleコンソールの指紋を確認してくださいSHA1はrelease.ifであなたのキーは、プレイストアのアプリケーションで動作していないデバッグのthatsです。

デバッグ証明書:Android SDKツールは、デバッグビルドを実行すると自動的にこの証明書を生成します。この証明書は、テストしているアプリでのみ使用してください。デバッグ証明書で署名されたアプリを公開しようとしないでください。デバッグ証明書については、Androidデベロッパードキュメントの「デバッグモードでの署名」で詳しく説明しています。

リリース証明書:リリースビルドを行うと、Android SDKツールによってこの証明書が生成されます。 keytoolプログラムを使用してこの証明書を生成することもできます。この証明書は、アプリを世界中にリリースする準備ができているときに使用します。詳細については

は、私は最近、Google PlayストアにAPKをアップロードし、私はこの問題の解決策を見つけたプレイコンソールをチェックした後、同じ問題に直面して

+0

こんにちはsasiクマールお返事はありがとうございます。しかし私の疑問は私が署名された同じapkを持っているとうまくいきます、それは問題がSHA1であってはならないことを意味しますが、私は同じapkをアップロードしてストアを再生すると問題が発生します。 –

関連する問題