签署申请后,谷歌地图没有加载?怎么解决这个?

时间:2013-11-21 08:25:47

标签: android google-maps google-maps-api-2 supportmapfragment mapfragment

大家好我创建了一个Android应用程序,它显示谷歌地图并在谷歌地图上设置标记。该应用程序正常工作,直到我签署该应用程序。

我的问题是在签署应用程序后没有加载谷歌地图。

有什么问题?

我正在使用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>

4 个答案:

答案 0 :(得分:1)

您可能仍然拥有基于DEBUG证书的SHA1哈希值的Google Maps API密钥。

在对应用程序进行签名后,您必须根据RELEASE证书的SHA1哈希设置Maps API密钥。

请参阅显示发布证书指纹
https://developers.google.com/maps/documentation/android/start#getting_the_google_maps_android_api_v2

获取Release SHA1哈希,生成API密钥并将其设置为清单

中的密钥

答案 1 :(得分: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"/>

<强> -------------编辑---------------

这是你的Manifest,还有所需的meta和权限。 如果您仍有错误,请将其添加到已修改的问题

      <?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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您是否尝试导入'google-play-services'?导入不同版本的google-play-services时可能会出现问题。我先进口了v29并且没有工作,所以有时你只需要保持低位。我在使用v12时得到了它。