【问题标题】:Google map application program crashes at the launch谷歌地图应用程序在启动时崩溃
【发布时间】:2012-03-25 05:46:54
【问题描述】:

我一直在尝试将地图添加到我的应用程序中,我已按照 android 开发人员 HelloGoogleMaps 教程中的说明进行操作,但是当我运行地图选项时,我的地图只是强制关闭。我已在清单中获得了我的 api 密钥登录权限

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

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


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:debuggable="true" >
        <activity
            android:name=".MappingDemoActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>
        <activity android:name=".ShowTheMap" android:label="Lat/Long Location"> </activity>
        <activity android:name=".MapMe" android:label="Track Present Location"> </activity>
        <uses-library android:name="com.google.android.maps" />
         <uses-permission android:name="android.permission.INTERNET" />
          <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    </application>

</manifest>

谁能告诉我除了运行代码之外是否需要配置任何东西?

03-25 11:50:52.217: I/Process(687): Sending signal. PID: 687 SIG: 9
03-25 11:51:00.557: D/AndroidRuntime(729): Shutting down VM
03-25 11:51:00.567: W/dalvikvm(729): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-25 11:51:00.627: E/AndroidRuntime(729): FATAL EXCEPTION: main
03-25 11:51:00.627: E/AndroidRuntime(729): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MappDemo.mymaps/com.MappDemo.mymaps.MappingDemoActivity}: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.os.Looper.loop(Looper.java:123)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-25 11:51:00.627: E/AndroidRuntime(729):  at java.lang.reflect.Method.invokeNative(Native Method)
03-25 11:51:00.627: E/AndroidRuntime(729):  at java.lang.reflect.Method.invoke(Method.java:507)
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-25 11:51:00.627: E/AndroidRuntime(729):  at dalvik.system.NativeStart.main(Native Method)
03-25 11:51:00.627: E/AndroidRuntime(729): Caused by: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:51:00.627: E/AndroidRuntime(729):  at com.MappDemo.mymaps.MappingDemoActivity.onCreate(MappingDemoActivity.java:19)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-25 11:51:00.627: E/AndroidRuntime(729):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-25 11:51:00.627: E/AndroidRuntime(729):  ... 11 more
03-25 11:51:10.013: I/Process(729): Sending signal. PID: 729 SIG: 9
03-25 11:52:16.817: D/AndroidRuntime(782): Shutting down VM
03-25 11:52:16.817: W/dalvikvm(782): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-25 11:52:16.877: E/AndroidRuntime(782): FATAL EXCEPTION: main
03-25 11:52:16.877: E/AndroidRuntime(782): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.MappDemo.mymaps/com.MappDemo.mymaps.MappingDemoActivity}: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.os.Looper.loop(Looper.java:123)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.main(ActivityThread.java:3683)
03-25 11:52:16.877: E/AndroidRuntime(782):  at java.lang.reflect.Method.invokeNative(Native Method)
03-25 11:52:16.877: E/AndroidRuntime(782):  at java.lang.reflect.Method.invoke(Method.java:507)
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
03-25 11:52:16.877: E/AndroidRuntime(782):  at dalvik.system.NativeStart.main(Native Method)
03-25 11:52:16.877: E/AndroidRuntime(782): Caused by: java.lang.ClassCastException: com.MappDemo.mymaps.MappingDemoActivity
03-25 11:52:16.877: E/AndroidRuntime(782):  at com.MappDemo.mymaps.MappingDemoActivity.onCreate(MappingDemoActivity.java:19)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
03-25 11:52:16.877: E/AndroidRuntime(782):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
03-25 11:52:16.877: E/AndroidRuntime(782):  ... 11 more

这是我在 logcat 中可以看到的.. 这就是我在 mappingDemoActivity.java 中所拥有的

public class MappingDemoActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //add listners for all buttons
        View firstbutton= findViewById(R.id.geocode_button);
        firstbutton.setOnClickListener((OnClickListener) this);
        View secondButton = findViewById(R.id.latlong_button);
        secondButton.setOnClickListener((OnClickListener) this);
        View thirdButton = findViewById(R.id.presentLocation_button);
        thirdButton.setOnClickListener((OnClickListener) this);

    }

    public void onClick(View v)
    {
        switch(v.getId())
        {
        case R.id.geocode_button:
             Log.i("Button","Button 1 pushed");
             Intent j = new Intent(this, ShowTheMap.class);
             startActivity(j);
         break;

         case R.id.latlong_button:
             Log.i("Button","Button 2 pushed");
             Intent k = new Intent(this, ShowTheMap.class);
             startActivity(k);
         break;

         case R.id.presentLocation_button:
             Log.i("Button","Button 3 pushed");
             Intent m = new Intent(this, MapMe.class);
             startActivity(m);
         break; 
        }

    }

【问题讨论】:

  • 您能否添加您在 DDMS 中遇到的异常...以便我们了解您的问题。
  • 我把错误放在了.. 请让我知道我到底哪里出错了??
  • 您在使用 Google API 模拟器吗?
  • 是的,我使用的是相同的。是模拟器有问题吗?还是我配置的任何东西?
  • 似乎这是由于 ClassCastException。在 MappingDemoActivity.java 中粘贴第 19 行

标签: android eclipse google-maps


【解决方案1】:

&lt;uses-permission&gt; 标签必须是 &lt;manifest&gt; 的子标签,而不是 &lt;application&gt;。 尝试更改&lt;uses-permission&gt; 的位置,它会有所帮助。

【讨论】:

  • 我什至做到了。但同样的问题。
【解决方案2】:

删除&lt;intent-filter&gt;中的这段代码

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

因为它已经在下面的引用中。

【讨论】:

    【解决方案3】:

    查看 SDK 中包含的 Google MapsDemo 我的路径是:

    C:\android-sdk\add-ons\addon-google_apis-google_inc_-10\samples\MapsDemo

    我遇到了一个非常烦人的问题 (MapActivity crashes on some devices),它只出现在某些(!)Android 设备上,也没有出现在模拟器中。我所做的是,剥离工作演示,直到它与我的基本示例相似。然后事实证明,三星手机不接受不以com.开头的包裹名称,而其他设备(HTC Flyer)则可以!但这不是您的问题,因为您使用的是 com. 包名称。

    我可能会想到另外一件事。你没有发布你的 main.xml。如果您在 MapView 下方使用嵌套的 LinearLayout,这也会使应用程序崩溃。在 MapView 之上,它工作正常。所以如果你使用类似的东西:

    <LinearLayout ... >
    
        <com.google.android.maps.MapView ... />
    
        <LinearLayout ... >
            <Button .../>   
        </LinearLayout>
    
    </LinearLayout>
    

    这可能会导致您的问题。这是可重现的,并且会引发完全相同的 java.lang.ClassCastException 错误。

    还请确保将您的 语句放在正确的位置,正如他们之前所说的那样。第一个必须是 节点的直接子节点。第二个必须是 节点的直接子节点。

    我希望这对你有帮助。我被这些东西弄疯了。

    伯纳德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-19
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多