我的Android应用程序在调试中显示谷歌地图,但在发布到市场时没有显示

时间:2013-06-20 21:59:15

标签: android eclipse google-maps keystore

我创建了一个使用Google地图和Google Play商店的应用程序,在使用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>

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

3 个答案:

答案 0 :(得分:1)

你刚看到灰色屏幕......它几乎肯定是API密钥错误。模拟器使用带有androiddebugkey的调试密钥库,因此您应该为此创建API密钥。在将应用程序发布到市场时,请记得更改它

refer this

答案 1 :(得分:0)

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

你很高兴。

答案 2 :(得分:0)

当你制作你的apk文件。你需要创建一个密钥库。现在,使用该密钥库来使用“Keytool”来获取MD5,就像使用debug keystore一样。之后,你需要从MD5注册API密钥,你刚刚得到。最近,你在Android清单中使用API​​密钥。