大家好我创建了一个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>
答案 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时得到了它。