Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Map API v2授权失败_Android_Android Maps_Google Maps Api 2 - Fatal编程技术网

Android Map API v2授权失败

Android Map API v2授权失败,android,android-maps,google-maps-api-2,Android,Android Maps,Google Maps Api 2,好的,下面是我使用 通过keytool获得调试键(确保它是eclipse在Preferences->Android->Build中使用的调试键) 通过命令生成密钥 $keytool-list-v-keystore debug.keystore-alias androiddebugkey-storepass android-keypass android 在Google API控制台+my packagename中复制粘贴SHA1总和: 总和;com.my.package 在Google API控

好的,下面是我使用

  • 通过keytool获得调试键(确保它是eclipse在Preferences->Android->Build中使用的调试键)
  • 通过命令生成密钥

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

  • 在Google API控制台+my packagename中复制粘贴SHA1总和:

    总和;com.my.package

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

  • 将其复制到元数据中的清单应用程序

  • 通过SDK管理器下载并导入google-play-services_lib项目,并将其引用为库项目。还有ActionBarSherlock

  • 在发布之前,我要确保谷歌的游戏服务是可用的

  • 舱单:

    <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"/>
    
    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;
        }
    }
    
    仔细检查钥匙是否完好。 不知道我错过了什么。

    启用了错误的服务。
    确保启用了“谷歌地图Android API v2”,而不是“谷歌地图API v2”,并重新生成API密钥。

    +1宾果…)我用API键卡住了,删除了密钥库,重命名了应用程序包。启用Google Maps Android API v2后,它对我仍然不起作用。因此,我尝试将清单中的目标sdk从16更改为17,并将其修复。注:切换回16也仍然有效。哦,我的话-这也是我的问题,我正在拔掉我的头发。非常感谢。万分感谢!我在这个问题上被困了两天!巴辛加!!!该死我非常感谢你!!我将与其他人交叉分享你的答案。我相信他们会很感激的-D:-好奇的Djust,你是怎么发现这件事的?我每天都在科技博客上,每天都在安卓开发者文档上,我只是在试图解决安卓地图v1在我现有代码中的一个不可能的问题时才偶然发现了这一点。看看是什么。关于启用错误的服务?如果是,你应该在回答评论中问这个问题,而不是为了让问题更清楚。我在StackOverflow的某个地方找到了这个建议,几个小时后我浏览了关于这个问题的不同问题。不,你是怎么发现android maps v2的,我意识到我只晚了两周,但我认为这是一个大交易。我在谷歌上寻找文档(API参考)。
    <?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>
    
    target=android-17
    android.library.reference.1=../google-play-services_lib
    android.library.reference.2=../ActionBarSherlock
    
    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;
        }
    }