1

我创建了一个使用 Google Maps 和 Google Playstore 的应用程序,并在使用 Eclipse 和 Android SDK 进行调试时,地图会显示在我正在运行的设备上,但发​​布时它不会显示在应用程序上。只有一个大的灰色屏幕。

AndroidManifest.xml

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

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

     <permission

         android:name="com.eema.permission.MAPS_RECEIVE"
         android:protectionLevel="signature" />

     <uses-permission android:name="com.eema" />
     <uses-permission android:name="com.eema.permission.MAPS_RECEIVE"/>
     <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="com.google.android.providers.gsf.permission.READ_GSERVICES" />



     <!--
          The following two permissions are not required to use
         Google Maps Android API v2, but are recommended.





     -->
      <uses-permission android:name="android.permission.VIBRATE"/>   
    <uses-permission android:name="android.permission.INTERNET"/>  
<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="com.google.android.providers.gsf.permission.READ_GSERVICES"/>

     <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/ic_launcher"
         android:label="@string/app_name"
         android:theme="@style/AppTheme" >
         <meta-data
             android:name="com.google.android.maps.v2.API_KEY"
             android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />

         <activity
             android:name="com.eema.MainActivity"
             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="com.eema.MapViewActivity"
             android:label="@string/title_activity_map_view" >
         </activity>
         <activity
             android:name="com.eema.NoConnectionActivity"
             android:label="@string/title_activity_no_connection" >
         </activity>
         <activity
             android:name="com.eema.ShelterActivity"
             android:label="@string/title_activity_shelter" >
         </activity>
         <activity
             android:name="com.eema.FuelStopActivity"
             android:label="@string/title_activity_fuel_stop" >
         </activity>
         <activity
             android:name="com.eema.DirectionsActivity"
             android:label="@string/title_activity_directions" >
         </activity>
         <activity
             android:name="com.eema.EvacRouteTableActivity"
             android:label="@string/title_activity_evac_route_table" >
         </activity>
     </application>

 </manifest>

可能是密钥库。我有一个生成的发布密钥库文件,如果需要,我需要从中获取密钥库吗?

4

3 回答 3

1

您是否只是看到灰屏...几乎可以肯定是 API 密钥错误。模拟器使用调试密钥库和 androiddebugkey,因此您应该为此创建一个 API 密钥。将应用程序发布到市场时记得更改它

参考这个

于 2013-06-21T10:57:39.637 回答
0

我认为这是一个密钥库问题。使用“keytool”从密钥库中获取 SHA1 并像使用调试密钥库一样注册它。

你很高兴。

于 2013-06-20T22:07:28.167 回答
0

当你制作你的apk文件时。你需要创建一个密钥库。现在,使用该密钥库通过“Keytool”获取 MD5,就像您使用调试密钥库所做的那样。之后,你需要从 MD5 注册 API 密钥,你刚刚得到。后来,你在你的 android 清单中使用 API 密钥。

于 2013-06-21T03:05:33.250 回答