I am using fragmentActivity for maps.In Java class getting error on setContentView. My Mapscreen.java is like: It is working fine on some devices showing crash on marshmallow only.Or is there any other reason?
public class MapScreen extends FragmentActivity implements LocationListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_screen);
....
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap = fm.getMap();
}
and my xml has fragment using SupportMapFragment as well. map_screen.xml is like :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" />
<ImageView
android:id="@+id/startActivityButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
android:layout_marginBottom="44dp"
android:background="@drawable/end_meetup_btn"
/>
</RelativeLayout>
I am not able to find the same question Getting crash here in Marshmallow: "Binary XML file line #7: Error inflating class fragment" Please suggest! Tried to find "Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.io.File.mkdir()' on a null object reference" also.
12-18 13:40:14.425: E/AndroidRuntime(8026): FATAL EXCEPTION: main
12-18 13:40:14.425: E/AndroidRuntime(8026): Process: com.kindlebit.urban_exchange, PID: 8026
12-18 13:40:14.425: E/AndroidRuntime(8026): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kindlebit.urban_exchange/com.kindlebit.urban_exchange.MapScreen}: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread.-wrap11(ActivityThread.java)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.os.Handler.dispatchMessage(Handler.java:102)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.os.Looper.loop(Looper.java:148)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread.main(ActivityThread.java:5417)
12-18 13:40:14.425: E/AndroidRuntime(8026): at java.lang.reflect.Method.invoke(Native Method)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.Activity.setContentView(Activity.java:2166)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.kindlebit.urban_exchange.MapScreen.onCreate(MapScreen.java:109)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.Activity.performCreate(Activity.java:6237)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
12-18 13:40:14.425: E/AndroidRuntime(8026): ... 9 more
12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
12-18 13:40:14.425: E/AndroidRuntime(8026): ... 17 more
12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.io.File.mkdir()' on a null object reference
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.gmm6.m.ad.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.gmm6.c.h.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.gmm6.c.y.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.e.bd.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.e.ev.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.e.z.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.maps.api.android.lib6.e.y.a(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.maps.internal.u.onTransact(SourceFile:107)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.os.Binder.transact(Binder.java:387)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.dynamic.zza.zza(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:995)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1185)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1287)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2243)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:278)
12-18 13:40:14.425: E/AndroidRuntime(8026): at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
This is just a workaround I did. If the below check fails, instead of loading the map, I load a fragment with an error.
Add SD card permissions to your manifest file.
The Issue was on "Micro-max Android one mobile" which was 6.0 Marshmallow. this device has not enough internal or external memory space.Even does not have SD card.
After following answer of George from this :
NullPointerException from Google maps
i installed memory card and now crash is not coming.
So i found problem was Updated Google Play services which require Space (updated Google photos ) that was not enough in my device.
and also one of the Error line was showing "Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.io.File.mkdir()' on a null object reference"
i decided to check after installing SD-card. And it worked
Add this to your manifest. Maybe maps need sdcard permission for some extra caching or something.
The issue has been fixed in version 9.0.83 of Google Play Services library.