【问题标题】:My Android App shows the google map in debug but doesn't show it when released to the market我的 Android 应用程序在调试中显示谷歌地图,但在发布到市场时不显示
【发布时间】:2013-06-20 21:59:15
【问题描述】:

我创建了一个使用 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>

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

【问题讨论】:

    标签: android eclipse google-maps keystore


    【解决方案1】:

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

    refer this

    【讨论】:

    • 你说得对,我必须将释放密钥添加到控制台和清单中。
    【解决方案2】:

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

    【讨论】:

    • 不是 MD5,我必须将 SHA1 添加到 API 控制台。
    【解决方案3】:

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

    你可以走了。

    【讨论】:

    • 你能给我一个如何做到这一点的例子吗?我正在为 Eclipse 使用 Keytool。
    • 而且,一旦我获得了 MD5,是否需要将其放入我的 androidmanifest 和 Google API 控制台中?
    • 其实不是md5,你得把SHA1加到控制台Yaadm中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多