ICS设备的Google Maps问题;二进制XML文件行#8:错误膨胀类片段

时间:2016-03-14 17:52:01

标签: 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 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)

0 个答案:

没有答案