相关疑难解决方法(0)

Google Maps Android API v2授权失败

我的步骤:

  • 从debug.keystore获取SHA1代码
  • 在谷歌apis控制台中创建应用程序
  • 启用了谷歌地图api v2
  • 输入SHA1; my.package.name
  • 获取API密钥
  • 创建AndroidManifest文件:

        <permission
                android:name="my.package.name.permission.MAPS_RECEIVE"
                android:protectionLevel="signature"/>
    
        <uses-permission android:name="my.package.name.permission.MAPS_RECEIVE"/>
    
        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>
    
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
        <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    
        <uses-feature android:glEsVersion="0x00020000" android:required="true"/>
    
        <application android:label="@string/app_name" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="true">
    
            <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_API_KEY_HERE" />
    
            <activity android:name="MyActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>
    </manifest>
    
    Run Code Online (Sandbox Code Playgroud)
  • 创建布局

  • 把"google-play-services.jar"放到libs上

编译后我崩溃了:

  ERROR/AndroidRuntime(10182): FATAL EXCEPTION: main
                java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
                at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
                at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
                at android.app.Activity.onCreateView(Activity.java:4716)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
                at android.app.Activity.setContentView(Activity.java:1881) …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-maps google-maps-android-api-2

92
推荐指数
6
解决办法
13万
查看次数

Android:Google Maps API密钥注册:MD5认证密钥

如何获取MD5指纹密钥.

我正在使用此命令:

C:\Program Files\Java\jdk1.7.0_04\bin>keytool.exe -list -alias androiddebugkey -keystore "C:\Documents and Settings\IBM\.android\debug.keystore" -storepass android -keypass android    ` 
Run Code Online (Sandbox Code Playgroud)

但无法获得MD5密钥,但我获得了证书指纹(SHA1)密钥

androiddebugkey, Jan 16, 2012, PrivateKeyEntry,Certificate fingerprint (SHA1):A4:9E:8F:FA:1A:B2:A0:79:3D:D3:95:41:82:3B:F6:DA:78:40:DD:DE        
Run Code Online (Sandbox Code Playgroud)

我想要MD5认证密钥.

非常感谢.

android google-maps-api-3

15
推荐指数
3
解决办法
3万
查看次数

Map API v2授权失败

好吧,这是我用这个例子做的

  1. 通过keytool获得调试密钥(确保调试密钥在首选项 - > Android - > Build中由eclipse使用)
  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可用.

表现:

<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"/>
Run Code Online (Sandbox Code Playgroud)

应用:

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="debug_key"/>
Run Code Online (Sandbox Code Playgroud)

还添加了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>
Run Code Online (Sandbox Code Playgroud)

project.properties

target=android-17
android.library.reference.1=../google-play-services_lib
android.library.reference.2=../ActionBarSherlock
Run Code Online (Sandbox Code Playgroud)

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

StartupActivity确保只有可用的服务才会启动DrugstoresMapActivity

private void attempt() { …
Run Code Online (Sandbox Code Playgroud)

android google-maps-api-2 android-maps

14
推荐指数
1
解决办法
7670
查看次数