Reputation: 61
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_
Upvotes: 0
Views: 1033
Reputation: 2322
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);
}
}
Upvotes: 0