Android MapView未加载

时间:2010-09-28 23:10:43

标签: android google-maps android-mapview android-manifest

我遇到了MapView的问题,因为它没有加载地图。我一直在读书,发现很多人都有同样的问题。我检查了所有可能的问题,似乎一切正常:P

  • 在清单上,它位于标记

  • 我有标签前的

  • 在模拟器中,3G正常运行,因为我可以使用浏览器导航并且Google地图可以完美加载

  • 我检查了两次我的ApiKey,似乎还可以。我正在使用Windows,所以在cmd中我导航到Java Keytool所在的文件夹,一旦我执行下一个命令获取指纹,然后我的ApiKey:

  

keytool -list -alias androiddebugkey   -storepass android -keypass android -key store c:\ path \ where \ the \ file \ is \ located \ debug.keystore

以下是我的一些代码:

public class mapa extends MapActivity {

 private MapView mMapView = null;  
 private MapController mc = null;


 /** Called when the Activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mapa);

  GeoPoint gPoint = new GeoPoint(40331175,-3765780);

  mMapView = (MapView) findViewById(R.id.mView);
  mMapView.setSatellite(true);
  mMapView.setBuiltInZoomControls(true);

  mc = mMapView.getController();
  mc.setZoom(15);
  mc.setCenter(gPoint);
     }

XML布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">

 <com.google.android.maps.MapView
  android:id="@+id/mView"
  android:layout_width="fill_parent" 
  android:layout_height="375dp"
  android:padding="5dp"
  android:enabled="true" 
  android:clickable="true" 
  android:apiKey="My_Api_Key" />

 <RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="3dp"
    android:orientation="vertical">

    <TextView
     android:id="@+id/tMapa"
   android:text="Último dato"
   android:layout_width="wrap_content" 
      android:layout_height="wrap_content" /> 

    //Here i have some other info, but its not relevant to the problem, since all this views loads properly :P

   </RelativeLayout>      

 </LinearLayout>

AndroidManifest:

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

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INERNET" />
    <uses-permission android:name="android.permission.WRITE_GSERVICES" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">

     <uses-library android:name="com.google.android.maps" />

                <!-- I've got here some others Activities declared -->

  <!-- This is the map Activity -->
  <activity android:name=".mapa"
      android:label="@string/app_name"
      class=".mapa">

  </activity>

 </application>

    <uses-sdk android:minSdkVersion="4" />

</manifest> 

所以,我不知道我还能做些什么来解决这个问题。

任何人都可以帮助我吗? :d

3 个答案:

答案 0 :(得分:2)

我们的Android开发人员也面临着这个问题。我们解决了这个问题:

  1. 我们从每台计算机生成API密钥,并将密钥添加到各自的main.xml文件中。所以每个开发人员都有一个单独的api密钥。

  2. 我们使用android“emulator”命令从命令行启动模拟器,该命令位于tools目录中,并以代理选项启动,而不是从Eclipse启动它eg:

  3.   

    E:&gt;模拟器-avd New_Device -http-proxy http://202.0.0.203:808

答案 1 :(得分:1)

你没有解释“它没有加载地图”的含义,这使你很难帮助你。

您没有在粘贴的代码中提供有效的API密钥,这使您更难以帮助您。

Here is a working MapView project - 只需粘贴您自己的API密钥即可。如果失败,但独立的Maps应用程序在同一个模拟器/设备中正常工作,那么您的API密钥可能无效。

答案 2 :(得分:0)

很久以前,因为我解决了这个问题(正如我在CommonsWare的评论中所解释的那样)。只需将其写在这里使其成为“官方”xD:

“ApiKey是正确的,其他一切都是正确的,除了互联网使用权限Manifiest。我错误输入INTERNET到INERNET¬_-'我不明白为什么Eclipse没有警告:P”