android谷歌地图项目显示空白页面放大和缩小按钮

时间:2014-07-14 10:24:54

标签: android eclipse google-maps

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

的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();
                }
            }
        }

    }

3 个答案:

答案 0 :(得分:0)

如果您正在使用eclipse,请转到Window-&gt; Preferences - &gt; Android - &gt;为您在此窗口中看到的SHA1构建并生成一个新的api密钥。

将新密钥放入清单。

可能你正在为apk使用api密钥。运行/调试使用和apk部署使用之间的密钥不同。

答案 1 :(得分:0)

Androidmanifest.xml中的

他们提供了API KEY

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

创建api密钥的过程

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

您还需要登录Google帐户

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

enter image description here

点击创建新密钥。添加指纹和android项目包名称。

enter image description here

你可以看到上面的api键

从服务标签启用google map api v2。

enter image description here

然后在应用程序标记

下的清单文件中
 <meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my key"/>

答案 2 :(得分:0)

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

  

即SHA-1 + com.example.googlemapsv2