Map API v2授权失败

时间:2012-12-10 15:23:17

标签: android android-maps google-maps-api-2

好的,这是我使用example

所做的
  1. 通过keytool获得调试密钥(确保调试密钥是由首选项中的eclipse使用 - > Android - > Build)
  2. 通过命令生成密钥

    $ keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

  3. 复制粘贴在Google API控制台+我的包名称中的SHA1总和:

    和; com.my.package

  4. 在Google API控制台的同一项目中启用Google Map API v2

  5. 将其复制到元数据中的Manifest应用程序。

  6. 通过SDK管理器下载并导入google-play-services_lib项目并将其作为库项目引用。以及ActionBarSherlock。

  7. 在发布之前,我确保GooglePlayServices可用。

  8. 清单:

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
    
    <permission
        android:name="com.my.package.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    
    <uses-permission android:name="com.my.package.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    

    应用:

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="debug_key"/>
    

    还添加了proguard的东西,但我现在不会混淆。

    DrugstoresMapActivity扩展了SherlockFragmentActivity

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

    project.properties

    target=android-17
    android.library.reference.1=../google-play-services_lib
    android.library.reference.2=../ActionBarSherlock
    

    ActionBarSherlock在libs中有android-support-v4,如果重要的话,不是主项目。

    StartupActivity确保只有可用的服务

    才会启动DrugstoresMapActivity
    private void attempt() {
        int result = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getBaseContext());
    
        switch (result) {
            case ConnectionResult.SUCCESS:
                startActivity(new Intent(this, DrugstoresMapActivity.class));
                finish();
                break;
    
            default:
                GooglePlayServicesUtil.getErrorDialog(result, this, REQUEST_DIALOG)
                    .show();
                break;
        }
    }
    

    仔细检查钥匙是否正常。 不知道我错过了什么。

1 个答案:

答案 0 :(得分:46)

启用了错误的服务。 确保&#34; Google Maps Android API v2&#34;而不是&#34; Google Maps API v2&#34;已启用并重新生成API密钥。