0

大家好,我创建了一个 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

4 回答 4

1

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

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

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

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

于 2013-11-21T12:16:48.493 回答
0
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.example.androidmapsv2.permission.MAPS_RECEIVE" />`
于 2013-11-21T08:49:51.147 回答
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>

查看地图的最低 API 级别为 8,因此您需要更改minSdkVersion为 8

于 2013-11-21T08:29:52.607 回答
0

你试过导入'google-play-services'吗?导入不同版本的 google-play-services 时可能会出现问题。我首先导入了 v29 并且无法正常工作,所以有时您只需要保持低电平即可。我使用v12得到了它。

于 2016-05-06T14:51:42.360 回答