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.shoutfinal28 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/AndroidRuntime: 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(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) Caused by: android.view.InflateException: Binary XML file line #7: Error inflating 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.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) 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.a.e.a(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(Unknown 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(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(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_

share|improve this question
    
Could you add the code of fragmentshouts_maps.xml file? – Miguel Benitez Mar 24 at 11:56
    
my mistake i put google maps xml file i meant fragmentshouts_maps xml file i have revised it so you can see it now @MiguelBenitez – Alexander Rufus Mar 24 at 11:59
    
dont know how to exaclty insert my log cat properly but made it bold and italic – Alexander Rufus Mar 24 at 13:41

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);
                    }
                }
share|improve this answer
    
My fragmentshouts_maps class already has this line of code ? – Alexander Rufus Mar 24 at 12:21
    
Actually it doesn't but I'm confused how would I implement this line of code and what line would it be replacing – Alexander Rufus Mar 24 at 12:22
    
Basically you are trying to get an element of a view which is not already inflated It's after onCreateView when R.id.Maps1 is visible – Miguel Benitez Mar 24 at 12:51
    
It came up with an error inconvertible types; cannot cast 'android.view.View' to 'com.google.android.gms.maps.SupportMapFragment – Alexander Rufus Mar 24 at 12:54
    
My fault... use your code inside onActivityCreated, I'll edit the answer – Miguel Benitez Mar 24 at 12:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.