简体   繁体   中英

android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment

i,ve just implemented my 4th tab into my application which has google maps implemented. before this implementation my application ran fine, now when i change tab it crashes. i have seen similar questions asked on here, but NOT ONE HAS THE ANSWER LOL(there was actually so many different causes and responses to this issue)

here is the fragmentshouts_maps class

package com.example.hp_user.shoutfinal28;



import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;


public class FragmentShouts_Maps extends Fragment implements OnMapReadyCallback {


public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Get the view from fragment shouts.xml
    View root_view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
    SupportMapFragment supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.Maps1);
    if (supportMapFragment!= null) {
        supportMapFragment.getMapAsync(this);
    }
    return root_view;
}


@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
}

@Override
public void onMapReady (GoogleMap map) {
    map.addMarker(new MarkerOptions()
            .position(new LatLng(0, 0))
            .title("Marker"));
}

}

my fragmentshouts_maps xml file

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<fragment
    android:id="@+id/Maps1"
    class="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:layout="@layout/fragmentshouts_maps"
    android:layout_alignParentEnd="true">
</fragment>


</RelativeLayout>

android manifest xml

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="SHOUT"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:label="SHOUT"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>


</manifest>

view pager adapter class

package com.example.hp_user.shoutfinal28;


import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;



public class ViewPagerAdapter extends FragmentStatePagerAdapter {

final int PAGE_COUNT = 4;
// Tab Titles
private String tabtitles[] = new String[] {"Home","Shouts","Maps","Shouters"};
Context context;

public ViewPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public int getCount() {
    return PAGE_COUNT;
}


public Fragment getItem(int position) {
    switch (position) {

        // Open Fragment home.java
        case 0:
            FragmentHome fragmenthome = new FragmentHome();
            return fragmenthome;

        // Open Fragment shouters.java
        case 1:
            FragmentShouts fragmentshouts = new FragmentShouts();
            return fragmentshouts;

        case 2:
            FragmentShouts_Maps fragmentshouts_maps = new FragmentShouts_Maps();
            return fragmentshouts_maps;

        case 3:
            FragmentShouters fragmentshouters = new FragmentShouters();
            return fragmentshouters;



    }
    return null;
}

@Override
public CharSequence getPageTitle(int position) {
    return tabtitles[position];
}


}

here is my error log

_ 03-24 13:10:44.990 2497-2497/com.example.hp_user.shoutfinal28 I/art: Not late-enabling -Xcheck:jni (already on) 03-24 13:10:45.149 2497-2497/com.example.hp_user.shoutfinal28 W/System: ClassLoader referenced unknown path: /data/app/com.example.hp_user.shoutfinal28-2/lib/x86 03-24 13:10:45.877 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 32.755ms 03-24 13:10:46.344 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 30.264ms 03-24 13:10:46.841 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 18.578ms 03-24 13:10:46.879 2497-2497/com.example.hp_user.shoutfinal28 I/GMPM: App measurement is starting up, version: 8487 03-24 13:10:46.879 2497-2497/com.example.hp_user.shoutfinal28 I/GMPM: To enable debug logging run: adb shell setprop log.tag.GMPM VERBOSE 03-24 13:10:47.126 2497-2497/com.example.hp_user.shoutfinal28 E/GMPM: GoogleService failed to initialize, status: 10, Missing an expected resource: ' R.string.google_app_id' for initializing Google services. Possible causes are missing google-services.json or com.google.gms.google-services gradle plugin. 03-24 13:10:47.126 2497-2497/com.example.hp_user.shoutfinal28 E/GMPM: Scheduler not set. Not logging error/warn. 03-24 13:10:47.285 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 10.416ms 03-24 13:10:47.306 2497-2549/com.example.hp_user.shoutfinal28 E/GMPM: Uploading is not possible. App measurement disabled 03-24 13:10:48.324 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 56.790ms 03-24 13:10:48.692 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 19.660ms 03-24 13:10:48.735 2497-2571/com.example.hp_user.shoutfinal28 D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 03-24 13:10:49.214 2497-2571/com.example.hp_user.shoutfinal28 I/OpenGLRenderer: Initialized EGL, version 1.4 03-24 13:10:49.686 2497-2571/com.example.hp_user.shoutfinal28 W/EGL_emulation: eglSurfaceAttrib not implemented 03-24 13:10:49.686 2497-2571/com.example.hp_user.shoutfinal28 W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xac0bfc40, error=EGL_SUCCESS 03-24 13:10:49.713 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 34.869ms 03-24 13:10:50.299 2497-2497/com.example.hp_user.shoutfinal28 I/Choreographer: Skipped 88 frames! The application may be doing too much work on its main thread. 03-24 13:10:51.354 2497-2497/com.example.hp_user.shoutfinal28 I/Choreographer: Skipped 62 frames! The application may be doing too much work on its main thread. 03-24 13:10:51.698 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 19.748ms 03-24 13:10:54.816 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 68.575ms 03-24 13:10:55.255 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 56.167ms 03-24 13:10:55.684 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 13.477ms 03-24 13:10:57.162 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 7.253ms 03-24 13:10:58.712 2497-2549/com.example.hp_user.shoutfinal28 I/GMPM: Tag Manager is not found and thus will not be used 03-24 13:10:59.674 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 24.761ms 03-24 13:11:00.056 2497-2497/com.example.hp_user.shoutfinal28 I/zzad: Making Creator dynamically 03-24 13:11:00.148 2497-2497/com.example.hp_user.shoutfinal28 W/System: ClassLoader referenced unknown path: /system/priv-app/PrebuiltGmsCore /lib/x86 03-24 13:11:00.528 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraCfgMgr: Reading stored module config 03-24 13:11:00.560 2497-2508/com.example.hp_user.shoutfinal28 I/art: Background sticky concurrent mark sweep GC freed 7893(582KB) AllocSpace objects, 5(100KB) LOS objects, 13% free, 3MB/3MB, paused 3.580ms total 263.471ms 03-24 13:11:00.584 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraCfgMgr: Loading module com.google.android.gms.maps from APK /data/user/0/com.google.android.gms/app_chimera/chimera-module-root/module-a3e4fba11e705727c59ff3116ef21fa4834b9f56/MapsModule.apk 03-24 13:11:00.595 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraModuleLdr: Loading module APK /data/user/0/com.google.android.gms/app_chimera/chimera-module-root/module-a3e4fba11e705727c59ff3116ef21fa4834b9f56/MapsModule.apk 03-24 13:11:00.781 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 138.569ms 03-24 13:11:00.781 2497-2497/com.example.hp_user.shoutfinal 28 D/ChimeraFileApk: Primary ABI of requesting process is x86 03-24 13:11:00.783 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraFileApk: Classloading successful. Optimized code found. 03-24 13:11:00.825 2497-2497/com.example.hp_user.shoutfinal28 W/System: ClassLoader referenced unknown path: /data/user/0/com.google.android.gms/app_chimera/chimera-module-root/module-a3e4fba11e705727c59ff3116ef21fa4834b9f56/native-libs/x86 03-24 13:11:01.134 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 22.116ms 03-24 13:11:01.743 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 81.006ms 03-24 13:11:01.744 2497-2497/com.example.hp_user.shoutfinal28 I/Google Maps Android API: Google Play services client version: 8487000 03-24 13:11:02.058 2497-2497/com.example.hp_user.shoutfinal28 I/Google Maps Android API: Google Play services package version: 8489470 03-24 13:11:02.144 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 35.413ms 03-24 13:11:02.181 2497-2497/com.example.hp_user.shoutfinal28 D/AndroidRuntime: Shutting down VM 03-24 13:11:02.275 2497-2497/com.example.hp_user.shoutfinal28 E/AndroidR untime: FATAL EXCEPTION: main Process: com.example.hp_user.shoutfinal28, PID: 2497 android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment at android.view.LayoutInflater.inflate(LayoutInflater.java:539) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(Fragment StatePagerAdapter.java:163) at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) at android.support.v4.view.ViewPager.populate(ViewPager.java:952) at android.support.v4.view.ViewPager$3.run(ViewPager.java:251) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: android.view.InflateException: Binary XML file line #7: Error inflati ng class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentManagerImpl.executePendingTra nsactions(FragmentManager.java:570) at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) at android.support.v4.view.ViewPager.populate(ViewPager.java:952) at android.support.v4.view.ViewPager$3.run(ViewPager.java:251) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteIn it.main(ZygoteInit.java:616) Caused by: java.lang.RuntimeException: API key not found. Check that is in the element of AndroidManifest.xml at com.google.maps.api.android.lib6.c.ad.a(Unknown Source) at com.google.maps.api.android.lib6.aea(Unknown Source) at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source) at com.google.android.gms.maps.internal.CreatorImpl.b(Unknown Source) at com.google.android.gms.maps.internal.h.onTransact(SourceFile:62) at android.os.Binder.transact(Binder.java:387) at com.google.android.gms.maps.internal.ah.b(SourceFile:179) at com.google.android.gms.maps.internal.CreatorImpl.b(SourceFile:100) at com.google.android.gms.maps.internal.ag.onTransact(SourceFile:62) at android.os.Binder.transact(Binder.java:387) at com.google.android.gms.maps.internal.zzc$zza$zza.zzs(Unknown Source) at com.google.android.gms.maps.SupportMapFragment$zzb.zzzW(Unknown Source) at com.google.android.gms.maps.SupportMapFragment$zzb.zza(Unknown Source) at com.google.android.gms.dynamic.zza.zza(Unknown Source) at com.google.android.gms.dynamic.zza.onInflate(Unkn own Source) at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source) at android.support.v4.app.Fragment.onInflate(Fragment.java:1129) at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2283) at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(Fragme ntManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) at android.support.v4.view.ViewPager.populate(ViewPager.java:1106) at android.support.v4.view.ViewPager.populate(ViewPager.java:952) at android.support.v4.view.ViewPager$3.run(ViewPager.java:251) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java :739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 03-24 13:11:13.831 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 21.969ms 03-24 13:11:16.801 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 12.148ms 03-24 13:11:20.740 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 10.787ms 03-24 13:11:42.991 2497-2504/com.example.hp_user.shoutfinal28 W/art: Suspending all threads took: 411.474ms _

Try to do the same in onActivityCreated()

   public void onActivityCreated(Bundle savedInstanceState) {
                    super.onActivityCreated(savedInstanceState);
                    SupportMapFragment supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.Maps1);
                    if (supportMapFragment!= null) {
                        supportMapFragment.getMapAsync(this);
                    }
                }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM