【问题标题】:Google map keep geting a blank screen on android谷歌地图在安卓上不断出现黑屏
【发布时间】:2013-09-30 13:43:28
【问题描述】:

这里需要一些帮助。

我在 AppStore 上有一个指南应用程序,我正在尝试为 Android 构建相同的应用程序,但我在使用 Google 地图时遇到了一些问题,一直出现空白屏幕。

-我已遵循​​来自:https://developers.google.com/maps/documentation/android/start 的指示。

这是我到目前为止所做的。

-已安装Eclipse Keytool

-已在项目中添加了Google Play Services Library

-拥有出色的 SHA1 指纹

-从 Google 开发者那里获得适用于 Android 应用程序(带有证书)的出色密钥

-传递manifest.xml中的key

-已从 lib 文件中删除 google-play-services-remove.jar。

当我在真实设备上测试我的应用程序时没有错误或警告,但我的 LogCat 中有这条红线:

(Authorization failure.  Please see https://developers.google.com/maps/documentation/android/start for how to correctly set up the map.

Ensure that the following correspond to what is in the API Console: Package Name: com.cyououtandroid, API Key: AIzaSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXGkyAxg, Certificate Fingerprint: DF6E6EXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0F2E5)

我确定我错过了什么,但我想不通。

【问题讨论】:

    标签: android eclipse google-maps


    【解决方案1】:

    首先检查以下事项

    • 您已添加 Debug SHA1 密钥(用于测试)

    • 您已添加 Release SHA1 密钥(从 Signed apk 生成的用于发布的密钥)

      您的 Package to Key 组合不正确,这就是您验证失败的原因。

    注意:不要从您的 java build Path 和 google play 服务库中删除 Maps.jar。

    【讨论】:

    • 如何获取 Debug SHA1 密钥(用于测试)?
    • 你能告诉我,在发布 SHA1 密钥的过程中,我必须在 manifest.xml 文件中设置调试 SHA1 密钥吗?如果是,我在哪里可以找到调试 SHA1 密钥?
    • 看看一个愚蠢的教程,你总是有一个“Debug.keystore”,它对所有应用程序都是通用的,另一个密钥库是你在需要运行时签署你的 apk 的那个并测试你的地图,你必须在你的清单文件中添加你的 deb 密钥,然后检查,如果你想在签署 apk 之后测试它,那么在签署 apk 之前你应该添加发布 SHA1 密钥,然后签署 APK 这里是教程@987654321 @
    • 您需要添加 2 个单独的指纹 1 与您的包名称和您的调试 SHA1 密钥,另一个与您在 Google API 控制台中的其他密钥存储区
    • 如果这真的对你有用,那么标记它是正确的,以便它可以帮助其他有同样问题的人
    【解决方案2】:

    见这里,只需在清单文件中使用您的密钥更改 api 密钥,然后按照以下步骤操作: 并确保使用 android 清单文件中提到的包名称生成 api 密钥,并且您的 google_play_services_lib 项目应仅存在于您项目的工作空间中。

    清单文件:

        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="18" />
    
        <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true" />
    
        <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" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="com.geeklabs.map.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>
    
            <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="replace with your API key"/>
    
        </application>
    
    </manifest>
    

    MainActivity.java:

        package com.geeklabs.map;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    }
    

    activity_main.xml:

        <?xml version="1.0" encoding="utf-8"?>
        <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:name="com.google.android.gms.maps.MapFragment"/>
    

    并确保以下步骤正确与否:

    步骤: * 确保设备有 Google Play services APK * 安装 Google Play 服务版本。 2个以上

    • https://code.google.com/apis/console/创建项目
    • 启用“Google Maps Android API v2”
    • 在 API 控制台注册项目中的 SHA1(现在,您需要 WRITE SHA1;your.app.package.name)并获取 API KEY
    • 将目录 ANDROID_SDK_DIR/extras/google/google_play_services/libproject/google-play-services_lib 复制到项目的根目录
    • 将下一行添加到 YOUR_PROJECT/project.properties

    android.library.reference.1=google-play-services_lib

    • 将下一行添加到 YOUR_PROJECT/proguard-project.txt

    -keep class * extends java.util.ListResourceBundle {

    protected Object[][] getContents();

    }

    好的,现在您可以使用适用于 Android 的 Google Map APIs V2 创建您自己的 Google Map 应用了。

    如果您创建应用的最低 SDK = 8,请使用 android 支持库 v4 + SupportMapFragment 而不是 MapFragment。

    收到后告诉我。

    按照这个分步过程在 v2 中获取地图:

    https://developers.google.com/maps/documentation/android/

    http://www.androidhive.info/2013/08/android-working-with-google-maps-v2/

    【讨论】:

      【解决方案3】:

      您似乎没有正确生成 API 密钥。

      当您生成密钥时,请确保您的“SHA1;packagename”由“;”分隔。

      还要确保您的构建路径中有 maps.jar 和 google-play-services.jar。

      maps.jar - /android-sdk/add-ons/google-apis-(无论哪个版本)/libs/maps.jar

      *google-play-services - android-sdk\extras\google\google_play_services\libproject\google-play-services_lib\libs*

      【讨论】:

      • 感谢您的重播。我确定我已经正确设置了 SHA1 密钥。但我在/libs 文件中没有看到maps.jar,只有gcm.jar。我在这里想念什么???
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多