Android ICS设备的谷歌地图问题;二进制XML文件行#8:膨胀类片段时出错

Android ICS设备的谷歌地图问题;二进制XML文件行#8:膨胀类片段时出错,android,android-fragments,nullpointerexception,google-maps-android-api-2,inflate-exception,Android,Android Fragments,Nullpointerexception,Google Maps Android Api 2,Inflate Exception,Crashlytics报告了一个我无法成功诊断和纠正的常见故障。看起来这可能是谷歌地图的问题,但我不确定为什么。这仅发生在4.1.2(69%)和4.4.2(31%)设备上。我觉得我必须调整我的代码以适应谷歌地图的这些版本 对于所有其他版本,一切正常。ICS之后不会发生任何崩溃。我将发布我的实现的主要组件 我有一个扩展SupportMapFragment的类 public class MapFragment extends SupportMapFragment { private Touc

Crashlytics报告了一个我无法成功诊断和纠正的常见故障。看起来这可能是谷歌地图的问题,但我不确定为什么。这仅发生在4.1.2(69%)和4.4.2(31%)设备上。我觉得我必须调整我的代码以适应谷歌地图的这些版本

对于所有其他版本,一切正常。ICS之后不会发生任何崩溃。我将发布我的实现的主要组件

我有一个扩展SupportMapFragment的类

public class MapFragment extends SupportMapFragment {
    private TouchableWrapper mTouchView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
        View originalContentView = super.onCreateView(inflater, parent, savedInstanceState);
        mTouchView = new TouchableWrapper(getActivity());
        mTouchView.addView(originalContentView);
        return mTouchView;
    }

    @Override
    public View getView() {
        return mTouchView;
    }

    /**
     * MapOnTouchListener callback
     *
     * @param listener
     */
    public void setMapTouchListener(MapOnTouchListener listener) {
        mTouchView.setMapOnTouchListener(listener);
    }
}
在XML中,我的地图就是这样引用的

<fragment
    android:id="@+id/map"
    android:name="<package name>.MapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

我已经看到一个建议,确认在清单中添加特定的元数据,我已经有了这个建议

<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="${google_map_key}"/>
<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>

有人有进一步的解决方案或建议吗

事故日志:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{<package name>.MapActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
       at android.app.ActivityThread.access$800(ActivityThread.java:139)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5057)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by android.view.InflateException: Binary XML file line #8: Error inflating class fragment
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
       at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
       at android.app.Activity.setContentView(Activity.java:1929)
       at com.ztrip.refresh.activity.MapActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:5231)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
       at android.app.ActivityThread.access$800(ActivityThread.java:139)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5057)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.NullPointerException
       at maps.dz.o.a(Unknown Source)
       at maps.dg.e.a(Unknown Source)
       at maps.dg.p.a(Unknown Source)
       at maps.ei.ag.a(Unknown Source)
       at maps.ei.bu.a(Unknown Source)
       at maps.ei.n$1.a(Unknown Source)
       at maps.ei.n.a(Unknown Source)
       at com.google.android.gms.maps.internal.i$a.onTransact(:com.google.android.gms.alldynamite:107)
       at android.os.Binder.transact(Binder.java:361)
       at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
       at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source)
       at com.google.android.gms.a.f.a(Unknown Source)
       at com.google.android.gms.a.b.zza(Unknown Source)
       at com.google.android.gms.a.b.onCreateView(Unknown Source)
       at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
       at com.ztrip.refresh.fragments.MapFragment.onCreateView(Unknown Source)
       at android.support.v4.app.Fragment.performCreateView(Unknown Source)
       at android.support.v4.app.ag.a(Unknown Source)
       at android.support.v4.app.ag.b(Unknown Source)
       at android.support.v4.app.ag.a(Unknown Source)
       at android.support.v4.app.ag.a(Unknown Source)
       at android.support.v4.app.ac.a(Unknown Source)
       at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(Unknown Source)
       at android.support.v4.app.t.onCreateView(Unknown Source)
       at android.support.v4.app.FragmentActivity.onCreateView(Unknown Source)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
       at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
       at android.app.Activity.setContentView(Activity.java:1929)
       at com.ztrip.refresh.activity.MapActivity.onCreate(Unknown Source)
       at android.app.Activity.performCreate(Activity.java:5231)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
       at android.app.ActivityThread.access$800(ActivityThread.java:139)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5057)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
       at dalvik.system.NativeStart.main(NativeStart.java)
致命异常:java.lang.RuntimeException:无法启动活动组件信息{.MapActivity}:android.view.InflateException:二进制XML文件行#8:膨胀类片段时出错
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
在android.app.ActivityThread.access$800(ActivityThread.java:139)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5057)
位于java.lang.reflect.Method.Invokenactive(Method.java)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
位于dalvik.system.NativeStart.main(NativeStart.java)
由android.view.InflateException引起:二进制XML文件行#8:膨胀类片段时出错
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
在android.view.LayoutInflater.充气(LayoutInflater.java:353)
位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
位于android.app.Activity.setContentView(Activity.java:1929)
位于com.ztrip.refresh.activity.MapActivity.onCreate(未知源)
位于android.app.Activity.performCreate(Activity.java:5231)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2163)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249)
在android.app.ActivityThread.access$800(ActivityThread.java:139)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5057)
位于java.lang.reflect.Method.Invokenactive(Method.java)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
位于dalvik.system.NativeStart.main(NativeStart.java)
由java.lang.NullPointerException引起
位于maps.dz.o.a(未知来源)
位于maps.dg.e.a(未知来源)
位于maps.dg.p.a(未知来源)
位于maps.ei.ag.a(未知来源)
位于maps.ei.bu.a(未知来源)
地址:maps.ei.n$1.a(未知来源)
地址:maps.ei.n.a(未知来源)
位于com.google.android.gms.maps.internal.i$a.onTransact(:com.google.android.gms.alldynamite:107)
位于android.os.Binder.transact(Binder.java:361)
在com.google.android.gms.maps.internal.imapfracentdelegate$zza$zza.onCreateView(未知来源)
位于com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(未知来源)
在com.google.android.gms.a.f.a(未知来源)
在com.google.android.gms.a.b.zza(未知来源)
位于com.google.android.gms.a.b.onCreateView(未知来源)
位于com.google.android.gms.maps.SupportMapFragment.onCreateView(未知源)
位于com.ztrip.refresh.fragments.MapFragment.onCreateView(未知源)
位于android.support.v4.app.Fragment.performCreateView(未知源)
位于android.support.v4.app.ag.a(未知来源)
位于android.support.v4.app.ag.b(未知来源)
位于android.support.v4.app.ag.a(未知来源)
位于android.support.v4.app.ag.a(未知来源)
位于android.support.v4.app.ac.a(未知来源)
位于android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(未知源)
位于android.support.v4.app.t.onCreateView(未知源)
位于android.support.v4.app.FragmentActivity.onCreateView(未知源)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
位于android.view.LayoutInflater.parseInclude(LayoutInflater.java:839)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:745)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
在android.view.LayoutInflater.inflate(LayoutInflater.java:492)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
在android.view.LayoutInflater.充气(LayoutInflater.java:353)
A.