Android Google Map API:强制关闭错误

问题描述:

我收到了关于运行sample code of Google API的强制关闭错误消息。是否更新项目是此类项目的解决方案?如果是这样,那么如何在窗口上更新项目。给出的方法here不适用于我的情况。Android Google Map API:强制关闭错误

这里是代码

文件名:HelloGoogleMaps.java

package com.hellogooglemaps.practices; 

    import com.google.android.maps.MapActivity; 
    import com.google.android.maps.MapView; 
    import android.os.Bundle; 


    public class HelloGoogleMaps extends MapActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    protected boolean isRouteDisplayed(){ 
    return false; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    MapView mapView = (MapView)findViewById(R.id.mapview); 
    mapView.setBuiltInZoomControls(true); 

} 
@Override 
protected boolean isLocationDisplayed(){ 
    return true; 
} 
} 

HelloGoogleMaps舱单

<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:name=".HelloGoogleMapsActivity" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter>   
    </activity> 
    <activity android:name=".HelloGoogleMaps" android:label="@string/app_name" 
      android:theme="@android:style/Theme.NoTitleBar" /> 
    <uses-library android:name="com.google.android.maps"/> 
</application> 

main.xml中

<?xml version="1.0" encoding="utf-8"?> 
    <com.google.android.maps.MapView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/mapview" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:clickable="true" 
      android:apiKey="0_hYeORLgQUROOOr_RXN2TWG2u2pCDoBYfLCV_w" 
      /> 
+0

发表您的logcat – 2012-07-08 08:07:04

正如你在你的代码中提到的,你只有一个活动叫做HelloGoogleMaps而在你的AndroidManifest中你宣布了两个活动!你的HelloGoogleMapsActivity是没用的。您收到错误是因为您将HelloGoogleMapsActivity设置为启动器活动并且此活动不存在!

解决方案: 更改AndroidManifest.xml这样的,你会得到你的应用程序的工作,如果你已经设法正确地得到apikey您的地图:

<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar" 
     android:name=".HelloGoogleMaps" > 
     <intent-filter > 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter>   
    </activity> 
    <uses-library android:name="com.google.android.maps"/> 
</application> 
+0

我曾经使用过的应用程序上面 – nKandel 2012-07-08 12:05:33

+0

@NarayanKandel对不起,看到我更新的答案 – 2012-07-08 12:55:52

+0

感谢了很多你的帮助。我认为发生的问题不是因为活动。当我删除旧项目并在新项目上做同样的工作时,它的作用。我不知道里面会发生什么。 – nKandel 2012-07-08 13:33:14

面临Force close Error很多时候我发现后是因为undefined behavioral,这些类型的错误非常常见。像我们声明Button并且没有在其上分配视图时,我们在另一个函数上使用它。这也是由于没有正确处理异常而出现的。或由于您尝试访问模拟器中的资源(如联系人号码)而无法使用。解决这些类型问题的最佳方法是使用日志并在我们感到困惑的地方打印一些消息并使用logcat。

在上述情况下,我曾在HelloGoogleMapsActivity类受到的力接近误差由于未定义行为