【问题标题】:Google Map api v2 crashing谷歌地图 api v2 崩溃
【发布时间】:2014-10-01 17:12:12
【问题描述】:

伙计们,我正在尝试通过 eclipse 将 google 地图添加到 android 应用程序中,我刚刚创建了新项目并按照此处的系列教程进行操作 Google Maps API v2

当我运行应用程序时它崩溃了,这是 logcat

10-01 20:00:19.911: E/AndroidRuntime(24614): 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:277) 10-01 20:00:19.911: E/AndroidRuntime(24614): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 10-01 20:00:19.911: E/AndroidRuntime(24614): ... 23 更多 10-01 20:00:19.911:E/AndroidRuntime(24614):原因:java.lang.ClassNotFoundException:在路径上找不到类“com.google.android.gms.maps.MapFragment”:/data/app /com.example.maptest-2.apk 10-01 20:00:19.911: E/AndroidRuntime(24614): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64) 10-01 20:00:19.911: E/AndroidRuntime(24614): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 10-01 20:00:19.911: E/AndroidRuntime(24614): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 10-01 20:00:19.911: E/AndroidRuntime(24614): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:399) 10-01 20:00:19.911: E/AndroidRuntime(24614): ... 26 更多 10-01 20:01:22.546:E/AndroidRuntime(25503):致命异常:主要 10-01 20:01:22.546:E/AndroidRuntime(25503):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}:android.view.InflateException:二进制XML 文件第 2 行:膨胀类片段时出错 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread.access$700(ActivityThread.java:168) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.os.Handler.dispatchMessage(Handler.java:99) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.os.Looper.loop(Looper.java:137) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread.main(ActivityThread.java:5493) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 java.lang.reflect.Method.invokeNative(Native Method) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 java.lang.reflect.Method.invoke(Method.java:525) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 dalvik.system.NativeStart.main(Native Method) 10-01 20:01:22.546:E/AndroidRuntime(25503):原因:android.view.InflateException:二进制 XML 文件第 2 行:膨胀类片段时出错 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:470) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:398) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:354) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.Activity.setContentView(Activity.java:1956) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:208) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 com.example.maptest.MainActivity.onCreate(MainActivity.java:13) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.Activity.performCreate(Activity.java:5372) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 10-01 20:01:22.546: E/AndroidRuntime(25503): ... 11 更多 10-01 20:01:22.546: E/AndroidRuntime(25503): 由: android.support.v4.app.Fragment$InstantiationException: 无法实例化片段 com.google.android.gms.maps.MapFragment: 确保类name 存在,是公共的,并且有一个公共的空构造函数 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:409) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:377) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:277) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 10-01 20:01:22.546: E/AndroidRuntime(25503): ... 23 更多 10-01 20:01:22.546:E/AndroidRuntime(25503):原因:java.lang.ClassNotFoundException:在路径上找不到类“com.google.android.gms.maps.MapFragment”:/data/app /com.example.maptest-1.apk 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 10-01 20:01:22.546: E/AndroidRuntime(25503): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:399) 10-01 20:01:22.546: E/AndroidRuntime(25503): ... 26 更多 10-01 20:02:52.021:E/AndroidRuntime(25864):致命异常:主要 10-01 20:02:52.021:E/AndroidRuntime(25864):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}:android.view.InflateException:二进制XML 文件第 2 行:膨胀类片段时出错 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2308) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2362) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread.access$700(ActivityThread.java:168) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1329) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.os.Handler.dispatchMessage(Handler.java:99) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.os.Looper.loop(Looper.java:137) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread.main(ActivityThread.java:5493) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 java.lang.reflect.Method.invokeNative(Native Method) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 java.lang.reflect.Method.invoke(Method.java:525) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 dalvik.system.NativeStart.main(Native Method) 10-01 20:02:52.021:E/AndroidRuntime(25864):原因:android.view.InflateException:二进制 XML 文件第 2 行:膨胀类片段时出错 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:470) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:398) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.view.LayoutInflater.inflate(LayoutInflater.java:354) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.Activity.setContentView(Activity.java:1956) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v7.app.ActionBarActivity.superSetContentView(ActionBarActivity.java:208) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v7.app.ActionBarActivityDelegateICS.setContentView(ActionBarActivityDelegateICS.java:111) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:76) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 com.example.maptest.MainActivity.onCreate(MainActivity.java:13) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.Activity.performCreate(Activity.java:5372) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 10-01 20:02:52.021: E/AndroidRuntime(25864): ... 11 更多 10-01 20:02:52.021: E/AndroidRuntime(25864): 由: android.support.v4.app.Fragment$InstantiationException: 无法实例化片段 com.google.android.gms.maps.MapFragment: 确保类name 存在,是公共的,并且有一个公共的空构造函数 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:409) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:377) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:277) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:691) 10-01 20:02:52.021: E/AndroidRuntime(25864): ... 23 更多 10-01 20:02:52.021:E/AndroidRuntime(25864):原因:java.lang.ClassNotFoundException:在路径上找不到类“com.google.android.gms.maps.MapFragment”:/data/app /com.example.maptest-2.apk 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:64) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 10-01 20:02:52.021: E/AndroidRuntime(25864): 在 android.support.v4.app.Fragment.instantiate(Fragment.java:399) 10-01 20:02:52.021: E/AndroidRuntime(25864): ... 26 更多

【问题讨论】:

  • Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.MapFragment" on path: /data/app/com.example.maptest-2.apk -- 确保在应用中正确设置 Play Services SDK 库项目。例如,如果您手动修改了项目的构建路径,那么您就做错了。
  • 你好看看那里如果这对你有帮助[链接]stackoverflow.com/questions/16572020/…

标签: java android eclipse google-maps google-maps-api-3


【解决方案1】:

确保您已在布局中声明片段。喜欢以下。

<fragment
          android:id="@+id/map"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:name="com.google.android.gms.maps.MapFragment"/>

另外,您在项目中添加了 Google Play 服务库。

按照这些说明一步一步来:https://developers.google.com/maps/documentation/android/start

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我犯了一个错误,只添加了以下 2 个标签之一。 请注意,您还缺少这两个中的一个

            <meta-data
                android:name="com.google.android.geo.API_KEY"
                android:value="<YOUR VALUE>"/>
            <meta-data
                android:name="com.google.android.gms.version"
                android:value="@integer/google_play_services_version" />
    

    实际错误确实具有误导性,因为您可能会想到一些 API 级别的 UI 问题。

    【讨论】:

    • 请不要在多个问题上发帖identical answers。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多