当我安装android apk文件时,谷歌地图不可见但是当我从eclipse运行相同的代码时,地图是可见的。我已经在android menifest文件中给出了所有权限。
这是我的清单文件 -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.majhe.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<!-- Permissions that are required for retrieving map data -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Permissions that are recommended for using map and location services -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- Recommended: prevents app installation if required level of Open GL is not supported -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.majhe.android.LoginActivity"
android:label="@string/title_activity_login"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
<activity
android:name="com.majhe.android.HomeActivity"
android:label="@string/title_activity_home"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.majhe.android.EditProfileActivity"
android:label="@string/title_activity_edit_profile"
android:parentActivityName="com.majhe.android.HomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name="com.majhe.android.EmergencyContactsActivity"
android:label="@string/title_activity_emergency_contacts"
android:parentActivityName="com.majhe.android.HomeActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.majhe.android.IntroScreenSlide"
android:label="Majhe v1.2"
android:parentActivityName="com.majhe.android.HomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyAS0_nm-fW_Wu7pNjxM3G2w9FxK_hbsCsI" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
答案 0 :(得分:0)
1)为您的签名密钥创建SHA-1。
The Eclipse debug key for signing your application can be found in the userhome/.android/debug.keystore file. eg) C:\Users\nil pc43.android\debug.keystore
-----> C:\Program Files\Java\jdk1.7.0_01\bin\keytool.exe -v -list -alias androiddebugkey -keystore "C:\Users\Info 1234\.android\debug.keystore" -storepass
android -keypass android
Example)
C:\Program Files\Java\jdk1.7.0_01\bin>keytool.exe -v -list -alias androiddebugkey -keystore "c:\Users\nil pc43\.android\deb
ug.keystore" -storepass android -keypass android
Alias name: androiddebugkey
Creation date: Apr 4, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4a5b5c6d
Valid from: Thu Apr 04 18:33:13 IST 2013 until: Sat Mar 28 18:33:13 IST 2043
Certificate fingerprints:
MD5: 51:CE:5C:07:05:31:98:6A:D5:7C:24:B1:B3:EC:22:A3
SHA1: B2:68:A7:D6:3A:FC:8F:15:8D:3E:1F:4A:E8:99:CE:8D:F5:28:07:4D
SHA256: 5B:5B:FE:7B:92:7F:06:53:1E:28:BB:D0:E5:CB:05:46:B0:81:76:CC:61:87:97:FA:19:68:B6:C1:08:E8:D6:D9
Signature algorithm name: SHA256withRSA
Version: 3
2)注册Google API控制台
-----> https://code.google.com/apis/console/
----> Go to Services
Then Activate(ON) the Google Maps Android API v2.
3)为您的应用创建密钥
-----> sELECT API ACCESS
**You need later to register your application via its package in this console together
with the SHA-1 fingerprint of your signature key. For this you select the entry and
click on the API Access entry. Afterwards click on the Create new Android key...entry.**
-----> Click on "Create New Android KEY"
-----> Enter your SHA-1 fingerprint and the package of your application separated by a semicolon.
For example you can use the com.example.mymaps package. (your SHA-1 key;package Name)
4)根据以下链接更改您的Manifist.xml和JAVA文件
-----> please Reffer this Link
http://www.vogella.com/articles/AndroidGoogleMaps/article.html
5)现在为您的项目创建新的KeyStore文件和APK文件。
----->C:\Program Files\Java\jdk1.7.0_01\bin>keytool -list -alias "your alias name" -keystore "path that have keystor file of yor application"
Enter keystore password: <pasword of your keystore>
mapExample, Apr 18, 2013, PrivateKeyEntry,
Certificate fingerprint (SHA1): 71:EF:B0:6A:A8:BG:E5:61:E9:23:D0:F2:1E:9D:D0:6F:A4:70:0F:A9
-----> Now you have new SHA-1 KEY
-----> With this SHA-1 KEY, Follow the Step no 4
6)现在您将获得新的Google地图API密钥
Now use this key in to Manifeast.xml file (AS SHOWN IN STEM NO 4)
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="NEW GOOGLE MAP API KEY" />
7)现在使用现有的密钥库创建你的APLICATION的新文件。