<uses-library android:name="com.google.android.maps" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />这些都在AndroidManifest.xml中加上了。
模拟器使用的是google apis 7的,在模拟器上,显示地图、缩放、添加标记等都已经测试通过完全可用了。将apk拷到手机上时,一打开就显示“....已意外停止。请重试。”.使用eclipse调试模式连接手机进行调试时,发现异常是:
08-15 22:47:52.093: ERROR/AndroidRuntime(4753): Uncaught handler: thread main exiting due to uncaught exception
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.android.learn.GoogleMap/com.android.learn.GoogleMap.GoogleMap}: java.lang.ClassNotFoundException: com.android.learn.GoogleMap.GoogleMap in loader dalvik.system.PathClassLoader@44b1d8c0
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2497)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.os.Handler.dispatchMessage(Handler.java:99)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.os.Looper.loop(Looper.java:123)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread.main(ActivityThread.java:4595)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at java.lang.reflect.Method.invokeNative(Native Method)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at java.lang.reflect.Method.invoke(Method.java:521)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at dalvik.system.NativeStart.main(Native Method)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): Caused by: java.lang.ClassNotFoundException: com.android.learn.GoogleMap.GoogleMap in loader dalvik.system.PathClassLoader@44b1d8c0
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)
08-15 22:47:52.283: ERROR/AndroidRuntime(4753): ... 11 more手机上应该是支持google api的,因为我安装了邻讯、飘信等内嵌地图的程序,打开他们的apk看过里面的AndroidManifest.xml,也是有<uses-library android:name="com.google.android.maps" />这句的,而且res/layout中的一些xml也是使用的<com.google.android.maps.MapView
所以我认为手机也是支持google api的。但是不知道为什么同一个程序在模拟器上可以运行,在手机上却会报错。在网上搜索相似问题时,发现别人都是能打开程序,但是显示不出来地图,跟我的又不一样。
有谁遇到过或者知道是怎么回事的,麻烦告知一下。谢谢

解决方案 »

  1.   

    Caused by: java.lang.ClassNotFoundException: com.android.learn.GoogleMap.GoogleMap in loader dalvik.system.PathClassLoader@44b1d8c0google map没编进去吧
      

  2.   

    google map要怎么编进去?不是在手机环境中已经存在的吗?
      

  3.   

    http://oss.lzu.edu.cn/modules/lifetype/index.php?op=ViewArticle&articleId=916&blogId=30
      

  4.   

    3楼发的这个链接,好像跟我说的问题没多大关系。像是系统层的东西,是做ROM的人要用到的吧
      

  5.   

    这是adb logcat看到的D/AndroidRuntime(  427):
    D/AndroidRuntime(  427): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
    D/AndroidRuntime(  427): CheckJNI is ON
    D/AndroidRuntime(  427): --- registering native functions ---
    D/ddm-heap(  427): Got feature list request
    I/ActivityManager(   58): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.android.learn
    .GoogleMap/.MyGoogleMap }
    I/ActivityManager(   58): Start proc com.android.learn.GoogleMap for activity com.android.learn.GoogleMap/.MyGoogleMap: pid=433 uid=10026 gids={3003}
    D/AndroidRuntime(  427): Shutting down VM
    D/dalvikvm(  427): DestroyJavaVM waiting for non-daemon threads to exit
    D/dalvikvm(  427): DestroyJavaVM shutting VM down
    D/dalvikvm(  427): HeapWorker thread shutting down
    D/dalvikvm(  427): HeapWorker thread has shut down
    D/jdwp    (  427): JDWP shutting down net...
    I/dalvikvm(  427): Debugger has detached; object registry had 1 entries
    D/dalvikvm(  427): VM cleaning up
    E/AndroidRuntime(  427): ERROR: thread attach failed
    D/dalvikvm(  427): LinearAlloc 0x0 used 638596 of 5242880 (12%)
    D/ddm-heap(  433): Got feature list request
    E/ActivityThread(  433): Failed to find provider info for com.google.settings
    E/ActivityThread(  433): Failed to find provider info for com.google.settings
    E/ActivityThread(  433): Failed to find provider info for com.google.settings
    D/dalvikvm(  433): GC freed 4406 objects / 276672 bytes in 70ms
    D/dalvikvm(  433): GC freed 6985 objects / 418672 bytes in 62ms
    I/ActivityManager(   58): Displayed activity com.android.learn.GoogleMap/.MyGoogleMap: 1557 ms (total 129208 ms)
    D/dalvikvm(  433): GC freed 7893 objects / 649552 bytes in 93ms
    D/dalvikvm(  114): GC freed 2502 objects / 143024 bytes in 94ms
    W/KeyCharacterMap(  433): No keyboard for id 0
    W/KeyCharacterMap(  433): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
    I/ARMAssembler(   58): generated scanline__00000177:03515104_00001001_00000000 [ 91 ipp] (114 ins) at [0x45c8a8:0x45ca70] in 5211657 ns
    D/dalvikvm(  433): threadid=21 wakeup: interrupted
    D/dalvikvm(  254): GC freed 205 objects / 9336 bytes in 71ms
    D/dalvikvm(  260): GC freed 945 objects / 42128 bytes in 94ms
    D/dalvikvm(   58): threadid=15: bogus mon 1+0>0; adjusting
      

  6.   

      是不是你的手机底层没有提供必要的硬件, 或者硬件接口, 而在android的底层, 也就是驱动层, 需要这些硬件, 因为没有, 所以报错呢?  如果这样的话, 你需要在linux里, 自己编译源码, 修改必要的地方, 使用这样的apk, 来安装到你的手机上。
      

  7.   

    已找到原因:手机用的ROM为了增加开机后的内存,是被瘦身过的,把google add-ons给去掉了,所以报ClassNotFoundException。我换了一个手机测试已经成功了,随后打算把自己的那台手机刷一个新ROM试试
      

  8.   

    这个问题是?MapActivity初始化时出现的问题,原因是你的布局文件里的 <View> 控件里面有错,或者apiKey有问题
      

  9.   

    楼主自己找原因了,应该是去了google map add-on,判断一下就知道了。
    try {
           Class.forName("com.google.android.maps.MapActivity");
       } catch (Exception e) {
           Toast.makeText(XXActivity.this, "Google map is not available", Toast.LENGTH_LONG).show();
           return;
       }
      

  10.   

    我也碰到同样的问题。有的手机没有集成GOOGLE的 maps.jar,所以用google maps api的SDK写的程序不能安装。可以把android包中MapsDemo.apk文件拷到真机上安装一下,如果也安不上那试试换网页版的,别用google maps api了。