0

Привет всем, я создал приложение для Android, которое отображает карту google и устанавливает маркеры на карте google. Приложение работает нормально, пока я не подпишу это приложение.Google Map не загружается после подписания заявки? Как это решить?

Моя проблема заключается в том, что после подписания приложения карта google не загружается.

В чем проблема?

Я использую Google Api v2 и фрагмент карты для просмотра карты.

Вот мой манифест код ....

 <?xml version="1.0" encoding="utf-8"?> 
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="example.tranzlogix_map" 
     android:versionCode="1" 
     android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="4" 
    android:targetSdkVersion="19" /> 



<permission 
    android:name="example.tranzlogix_map.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"></permission> 

<uses-permission 
    android:name="example.tranzlogix_map.permission.MAPS_RECEIVE"/> 
<uses-permission 
    android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission 
    android:name="android.permission.INTERNET"/> 
<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission 
    android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission 
    android:name="android.permission.ACCESS_FINE_LOCATION"/> 

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



<application 
    android:allowBackup="true" 
    android:icon="@drawable/goo" 
    android:label="@string/app_name" 
    android:theme="@style/Translucent" > 

    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyB6ut74Pvg8T2rs7jg5GSjD6Es4beyxSYI"/> 


    <activity 
     android:name="example.tranzlogix_map.LoginActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="example.tranzlogix_map.HelpActivity" 
     android:label="@string/app_name" > 

    </activity> 
     <activity 
     android:name="example.tranzlogix_map.MainActivity" 
     android:label="@string/app_name" > 

     </activity> 


    </application> 

    </manifest> 

ответ

0

добавить этот meta_data под meta_data:

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

и добавить permission:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

--- ----------Редактировать---------------

вот ваш манифест с необходимыми мета и разрешениями. Если у вас есть ошибка, пожалуйста, добавьте его к вопросу отредактирован

 <?xml version="1.0" encoding="utf-8"?> 
     <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="example.tranzlogix_map" 
     android:versionCode="1" 
     android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="19" /> 



<permission 
    android:name="example.tranzlogix_map.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature"></permission> 

<uses-permission 
    android:name="example.tranzlogix_map.permission.MAPS_RECEIVE"/> 
<uses-permission 
    android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
<uses-permission 
    android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission 
    android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission 
    android:name="android.permission.ACCESS_FINE_LOCATION"/> 

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



<application 
    android:allowBackup="true" 
    android:icon="@drawable/goo" 
    android:label="@string/app_name" 
    android:theme="@style/Translucent" > 

    <meta-data 
     android:name="com.google.android.maps.v2.API_KEY" 
     android:value="AIzaSyB6ut74Pvg8T2rs7jg5GSjD6Es4beyxSYI"/> 
    <meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 


    <activity 
     android:name="example.tranzlogix_map.LoginActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="example.tranzlogix_map.HelpActivity" 
     android:label="@string/app_name" > 

    </activity> 
     <activity 
     android:name="example.tranzlogix_map.MainActivity" 
     android:label="@string/app_name" > 

     </activity> 


    </application> 

    </manifest> 

глядя на this минимальный уровень API для отображения является 8, так что вы должны изменить minSdkVersion на 8

+0

Я попытался добавить эти значения метаданных, но он бросает ошибки, если вы не возражаете, пожалуйста, измените метаданные в своем манифесте и разместите его здесь. Спасибо большое –

+0

, пожалуйста, проверьте отредактированную часть. надеюсь, что это сработает, если он не обновил ошибку logcat – Coderji

+0

Iam не получил никакой ошибки ... Тем не менее серый цвет отображается на месте google map.when я подписываю приложение sha отпечаток пальца, я создал новый андроид ключ в консоли google api с этим sha и моим именем пакета .. что делать после этого. wheather я должен использовать этот сгенерированный ключ api где-нибудь в моем манифесте ..... все еще очень запутался .... –

0
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" />` 
+0

Я добавил (а) эти разрешения, но все же карта не загружается ..... –

1

You вероятно, все еще есть ваш API API карт Google на основе хэша SHA1 сертификата DEBUG.

После подписания приложения для выпуска вам необходимо будет установить ключ API Карт на основе хэша SHA1 сертификата RELEASE.

См отображая сертификат релиз отпечатка
https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2

Получить хэш-релиз SHA1, сгенерировать ключ API и установить его в качестве ключа в манифесте

0

Пробовали ли вы импортируете 'google-play-services'? Проблема может возникнуть при импорте другой версии google-play-services. Сначала я импортировал v29 и не работал, поэтому иногда вам просто нужно оставаться на низком уровне. Я получил его, используя v12.