【问题标题】:android google maps project showing blank page with zoom in and zoom out buttonsandroid google maps 项目显示带有放大和缩小按钮的空白页面
【发布时间】:2014-07-14 10:24:54
【问题描述】:

我已经为显示特定位置的谷歌地图创建了一个项目,但输出只显示一个带有放大和缩小按钮的空白页面。我在下面发布我的代码。请帮帮我。谢谢。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.googlemapsv2"
android:versionCode="1"
android:versionName="1.0" >

 <permission
    android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.example.googlemapsv2.permission.MAPS_RECEIVE" />


<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="17" />


 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission         android:name="com.google.android.providers.gsf.permission.
READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<!-- Required to show current location -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- Required OpenGL ES 2.0. for Maps V2 -->
<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" >
    <activity
        android:name="com.example.googlemapsv2.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.gms.version"
android:value="@integer/google_play_services_version" />

     <!-- Google API Key -->
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="API KEY" />


</application>

 </manifest>

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"/>

MainActivity.java

    package com.example.googlemapsv2;


    import com.google.android.gms.maps.CameraUpdateFactory;
      import com.google.android.gms.maps.GoogleMap;
       import com.google.android.gms.maps.MapFragment;
     import com.google.android.gms.maps.model.CameraPosition;
     import com.google.android.gms.maps.model.LatLng;
   import com.google.android.gms.maps.model.Marker;
    import com.google.android.gms.maps.model.MarkerOptions;

    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.app.ActionBar;
     import android.support.v4.app.Fragment;
     import android.support.v4.app.FragmentActivity;
     import android.app.Activity;
       import android.os.Bundle;
     import android.view.LayoutInflater;
     import android.view.Menu;
     import android.view.MenuItem;
      import android.view.View;
     import android.view.ViewGroup;
      import android.widget.Toast;
      import android.os.Build;
        import android.app.Activity;


    public class MainActivity extends Activity
    {

        // Google Map
         GoogleMap googleMap;

        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            try {
                // Loading map
                initilizeMap();

            } catch (Exception e) {
                e.printStackTrace();
            }

        }

        /**
         * function to load map. If map is not created it will create it for you
         * */
        private void initilizeMap() {
            if (googleMap == null) {
                googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                        R.id.map)).getMap();

                double latitude = 19.990802;
                double longitude = 72.742234;

                CameraPosition cameraPosition = new CameraPosition.Builder()
                        .target(new LatLng(19.990802, 72.742234)).zoom(16).build();

                MarkerOptions marker = new MarkerOptions().position(
                        new LatLng(latitude, longitude)).title("Taj Mahal");
        //      googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
                googleMap.animateCamera(CameraUpdateFactory
                        .newCameraPosition(cameraPosition));

                // adding marker
                googleMap.addMarker(marker);

                // check if map is created successfully or not
                if (googleMap == null) {
                    Toast.makeText(getApplicationContext(),
                            "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                            .show();
                }
            }
        }

    }

【问题讨论】:

  • 检查您的 API 密钥...
  • 您正在运行应用程序的调试版本吗?如果是,请确保您的 API 密钥对调试 apk 有效。
  • 我提到的那个是正确的键。
  • 对不起,我无法理解某种意义上的调试版本??
  • 您是否在 API 控制台中启用了 Google Maps Android API v2?

标签: android eclipse google-maps


【解决方案1】:

确保您的 API 密钥是使用 android 清单文件中提到的 SHA-1 密钥 + 包名称生成的,而不是您的实际包。

即 SHA-1+com.example.googlemapsv2

【讨论】:

    【解决方案2】:

    如果您使用的是 Eclipse,请转到 Window->Preferences -> Android -> Build 并为您在此窗口中看到的 SHA1 生成一个新的 api 密钥。

    将新密钥放入清单中。

    您可能正在为 apk 使用 api 密钥。运行/调试用法和 apk 部署用法的键不同。

    【讨论】:

    • 我按照上面的链接找到了项目的api密钥。
    • 您使用了错误的 SHA1 代码。转到 Window->Preferences -> Android -> Build 并使用此代码生成新密钥。
    • 是否需要为每个项目创建一个新的api密钥。
    • 所以...请批准答案。
    【解决方案3】:

    在 Androidmanifest.xml 中

    他们提供了 API KEY

     <!-- Google API Key -->
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="API KEY" />
    

    创建 api 密钥的过程

    如果您已经拥有密钥,请获取下面的链接并添加指纹以及您的 android 项目包名称

    您还需要登录您的谷歌帐户

    https://code.google.com/apis/console

    点击创建新密钥。添加指纹以及您的 android 项目包名称。

    可以看到上面的api键

    从服务选项卡启用 google map api v2。

    然后在应用标签下的清单文件中

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

    【讨论】:

    • 是的,我自己按照这些步骤获取 api 密钥。
    • 还是有问题。请给我一些解决方案。
    • 如果您可以共享您的桌面,我可以看到您的问题,使用 Google 桌面共享...
    • 你确定我是新手。请帮帮我
    • 首先从谷歌浏览器中的应用程序下载桌面共享,然后告诉你 id..我可以连接...
    猜你喜欢
    • 1970-01-01
    • 2019-10-18
    • 2020-08-04
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 1970-01-01
    • 2017-12-05
    • 2023-02-06
    相关资源
    最近更新 更多